diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 9f874d424c5..368a8ae506c 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -6,6 +6,7 @@ desc = "Has a valve and pump attached to it" level = 1 + layer = TURF_LAYER var/area_uid var/id_tag = null diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 6c427baab38..a55e38140b1 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -6,6 +6,7 @@ desc = "Has a valve and pump attached to it" level = 1 + layer = TURF_LAYER var/id_tag = null var/frequency = 1439 diff --git a/code/WorkInProgress/Chemistry-Holder.dm b/code/WorkInProgress/Chemistry-Holder.dm index de22a277f0f..3711feabe55 100644 --- a/code/WorkInProgress/Chemistry-Holder.dm +++ b/code/WorkInProgress/Chemistry-Holder.dm @@ -5,7 +5,7 @@ datum reagents - var/list/reagent_list = new/list() + var/list/datum/reagent/reagent_list = new/list() var/total_volume = 0 var/maximum_volume = 100 var/atom/my_atom = null diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm index 1266f6b6897..2b470288d54 100644 --- a/code/WorkInProgress/Chemistry-Reagents.dm +++ b/code/WorkInProgress/Chemistry-Reagents.dm @@ -426,7 +426,7 @@ datum reagent_state = GAS on_mob_life(var/mob/M) if(!M) M = holder.my_atom - usr.take_organ_damage(1, 0) + M.take_organ_damage(1, 0) ..() return @@ -485,7 +485,7 @@ datum on_mob_life(var/mob/M) if(!M) M = holder.my_atom M:toxloss++ - usr.take_organ_damage(0, 1) + M.take_organ_damage(0, 1) ..() return reaction_mob(var/mob/M, var/method=TOUCH, var/volume) @@ -530,7 +530,7 @@ datum on_mob_life(var/mob/M) if(!M) M = holder.my_atom M:toxloss++ - usr.take_organ_damage(0, 1) + M.take_organ_damage(0, 1) ..() return reaction_mob(var/mob/M, var/method=TOUCH, var/volume) @@ -864,7 +864,7 @@ datum on_mob_life(var/mob/M) if(!M) M = holder.my_atom if(prob(33)) - usr.take_organ_damage(1, 0) + M.take_organ_damage(1, 0) M:oxyloss += 3 if(prob(20)) M:emote("gasp") ..() @@ -1037,7 +1037,7 @@ datum M:radiation = max(M:radiation-3,0) if(M:toxloss) M:toxloss-- if(prob(15)) - usr.take_organ_damage(1, 0) + M.take_organ_damage(1, 0) ..() return @@ -1317,7 +1317,7 @@ datum if(!M) M = holder.my_atom M:bodytemperature += 5 if(prob(40)) - usr.take_organ_damage(0, 1) + M.take_organ_damage(0, 1) ..() return @@ -1331,7 +1331,7 @@ datum if(!M) M = holder.my_atom M:bodytemperature -= 5 if(prob(40)) - usr.take_organ_damage(0, 1) + M.take_organ_damage(0, 1) ..() return diff --git a/code/WorkInProgress/Chemistry-Recipes.dm b/code/WorkInProgress/Chemistry-Recipes.dm index c4bfddcdcf4..32275def76e 100644 --- a/code/WorkInProgress/Chemistry-Recipes.dm +++ b/code/WorkInProgress/Chemistry-Recipes.dm @@ -520,7 +520,7 @@ datum result_amount = 1 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) - new /obj/item/weapon/reagent_containers/food/snacks/cheesewheel(location) + new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location) return icetea diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm index c270abe3544..72594cd6942 100644 --- a/code/WorkInProgress/Chemistry-Tools.dm +++ b/code/WorkInProgress/Chemistry-Tools.dm @@ -908,7 +908,6 @@ user << "\blue [trans] units injected. [reagents.total_volume] units remaining in the hypospray." return - //////////////////////////////////////////////////////////////////////////////// /// Food. //////////////////////////////////////////////////////////////////////////////// @@ -1014,7 +1013,54 @@ usr << "\blue \The [src] was bitten [bitecount] times!" else usr << "\blue \The [src] was bitten multiple times!" - + +/obj/item/weapon/reagent_containers/food/snacks/sliceable + var/slice_path + var/slices_num + attackby(obj/item/weapon/W as obj, mob/user as mob) + var/inaccurate = 0 + if( \ + istype(W, /obj/item/weapon/kitchenknife) || \ + istype(W, /obj/item/weapon/scalpel) || \ + istype(W, /obj/item/weapon/kitchen/utensil/knife) \ + ) + else if( \ + istype(W, /obj/item/weapon/circular_saw) || \ + istype(W, /obj/item/weapon/sword) && W:active || \ + istype(W, /obj/item/weapon/blade) || \ + istype(W, /obj/item/weapon/shovel) \ + ) + inaccurate = 1 + return + else + return 1 + if ( \ + !isturf(src.loc) || \ + !(locate(/obj/table) in src.loc) && \ + !(locate(/obj/machinery/optable) in src.loc) && \ + !(locate(/obj/item/weapon/tray) in src.loc) \ + ) + user << "\red You cannot slice [src] here! You need a table or at least a tray to do it." + return 1 + var/slices_lost = 0 + if (!inaccurate) + user.visible_message( \ + "\blue [user] slices \the [src]!", \ + "\blue You slice \the [src]!" \ + ) + else + user.visible_message( \ + "\blue [user] inaccurate slices \the [src] with [W]!", \ + "\blue You inaccurate slice \the [src] with your [W]!" \ + ) + slices_lost = rand(1,min(1,round(slices_num/2))) + var/reagents_per_slice = reagents.total_volume/slices_num + for(var/i=1 to (slices_num-slices_lost)) + var/obj/slice = new slice_path (src.loc) + reagents.trans_to(slice,reagents_per_slice) + del(src) + return + //////////////////////////////////////////////////////////////////////////////// /// FOOD END @@ -1579,817 +1625,10 @@ reagents.add_reagent("spaceacillin", 15) update_icon() +//////////////////////////////////////////////////////////////////////////////// +/// Concrete food moved to code/modules/food/food.dm +///////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////// -////////////////////////////////////////////Snacks -////////////////////////////////////////////////// -//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created -// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten. - -//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40 -// total for the item because you want to leave space for extra condiments. If you want effects besides healing, add a reagent for -// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use -// effects (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way). - -//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to -// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a -// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all -// the bites. No more contained reagents = no more bites. - -//Here is an example of the new formatting for anyone who wants to add more food items. -///obj/item/weapon/reagent_containers/food/snacks/xenoburger //Identification path for the object. -// 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. -// ..() //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. -// bitesize = 3 //This is the amount each bite consumes. - -/obj/item/weapon/reagent_containers/food/snacks/banana - name = "Banana" - desc = "A banana." - icon = 'items.dmi' - icon_state = "banana" - item_state = "banana" - On_Consume() - var/mob/M = usr - var/obj/item/weapon/bananapeel/W = new /obj/item/weapon/bananapeel( M ) - M << "\blue You peel the banana." - M.put_in_hand(W) - W.add_fingerprint(M) - New() - ..() - reagents.add_reagent("banana", 5) - bitesize = 5 - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/weapon/reagent_containers/food/snacks/candy - name = "candy" - desc = "Nougat love it or hate it." - icon_state = "candy" - New() - ..() - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/candy_corn - name = "candy corm" //Not a typo - desc = "It's a handful of candy corm. Can be stored in a detective's hat." - icon_state = "candy_corn" - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/chips - name = "chips" - desc = "Commander Riker's What-The-Crisps" - icon_state = "chips" - New() - ..() - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/donut - name = "donut" - desc = "Goes great with Robust Coffee." - icon_state = "donut1" - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 1) - if(prob(30)) - src.icon_state = "donut2" - src.name = "frosted donut" - src.bitesize = 2 - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("sprinkles", 1) - -/obj/item/weapon/reagent_containers/food/snacks/egg - name = "egg" - desc = "An egg!" - icon_state = "egg" - New() - ..() - reagents.add_reagent("nutriment", 1) - -/obj/item/weapon/reagent_containers/food/snacks/flour - name = "flour" - desc = "Some flour" - icon_state = "flour" - New() - ..() - reagents.add_reagent("nutriment", 1) - -/obj/item/weapon/reagent_containers/food/snacks/humanmeat - name = "-meat" - desc = "A slab of meat" - icon_state = "meat" - var/subjectname = "" - var/subjectjob = null - New() - ..() - reagents.add_reagent("nutriment", 3) - - -/obj/item/weapon/reagent_containers/food/snacks/tofu - name = "Tofu" - icon_state = "tofu" - desc = "We all love tofu." - New() - ..() - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/monkeymeat - name = "meat" - desc = "A slab of meat" - icon_state = "meat" - New() - ..() - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/carpmeat - name = "carp fillet" - desc = "A fillet of spess carp meat" - icon_state = "fishfillet" - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("carpotoxin", 3) - -/obj/item/weapon/reagent_containers/food/snacks/xenomeat - name = "meat" - desc = "A slab of meat" - icon_state = "xenomeat" - New() - ..() - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/faggot - name = "Faggot" - desc = "A great meal all round. Not a cord of wood." - icon_state = "faggot" - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/donkpocket - name = "Donk-pocket" - desc = "The food of choice for the seasoned traitor." - icon_state = "donkpocket" - New() - ..() - reagents.add_reagent("nutriment", 2) - var/warm = 0 - proc/cooltime() //Not working, derp? - if (src.warm) - spawn( 4200 ) - src.warm = 0 - src.reagents.del_reagent("tricordrazine") - src.name = "donk-pocket" - return - -/obj/item/weapon/reagent_containers/food/snacks/brainburger - name = "brainburger" - desc = "A strange looking burger. It looks almost sentient." - icon_state = "brainburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/humanburger - name = "-burger" - var/hname = "" - var/job = null - desc = "A bloody burger." - icon_state = "hburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/monkeyburger - name = "burger" - desc = "The cornerstone of every nutritious breakfast." - icon_state = "hburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/fishburger - name = "Fillet -o- Carp Sandwich" - desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp." - icon_state = "fishburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("carpotoxin", 3) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/tofuburger - name = "Tofu Burger" - desc = "What.. is that meat?" - icon_state = "tofuburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/roburger - name = "roburger" - desc = "The lettuce is the only organic component. Beep." - icon_state = "roburger" - New() - ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("nanites", 10) - bitesize = 3 - - -/obj/item/weapon/reagent_containers/food/snacks/roburgerbig - name = "roburger" - desc = "This massive patty looks like poison. Beep." - icon_state = "roburger" - volume = 100 - New() - ..() - reagents.add_reagent("nanites", 100) - bitesize = 0.1 - -/obj/item/weapon/reagent_containers/food/snacks/xenoburger - name = "xenoburger" - desc = "Smells caustic. Tastes like heresy." - icon_state = "xburger" - New() - ..() - reagents.add_reagent("xenomicrobes", 10) - reagents.add_reagent("nutriment", 2) - bitesize = 3 - -/obj/item/weapon/reagent_containers/food/snacks/clownburger - name = "Clown Burger" - desc = "This tastes funny..." - icon_state = "clownburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/mimeburger - name = "Mime Burger" - desc = "It's taste defies language." - icon_state = "mimeburger" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/omelette - name = "Omelette Du Fromage" - desc = "That's all you can say!" - icon_state = "omelette" - var/herp = 0 - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 1 - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/kitchen/utensil/fork)) - if (W.icon_state == "forkloaded") - user << "\red You already have omelette on your fork." - return - W.icon = 'kitchen.dmi' - W.icon_state = "forkloaded" - /*if (herp) - world << "[user] takes a piece of omelette with his fork!"*/ //Why this unecessary check? Oh I know, because I'm bad >:C - viewers(3,user) << "[user] takes a piece of omelette with their fork!" - reagents.remove_reagent("nutriment", 1) - if (reagents.total_volume <= 0) - del(src) - -/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload - name = "Omelette Du Fromage" - desc = "That's all you can say!" - New() - ..() - reagents.add_reagent("nutriment", 1) - -/obj/item/weapon/reagent_containers/food/snacks/muffin - name = "Muffin" - desc = "A delicious and spongy little cake" - icon_state = "muffin" - New() - ..() - reagents.add_reagent("nutriment", 6) - -/obj/item/weapon/reagent_containers/food/snacks/pie - name = "Banana Cream Pie" - desc = "Just like back home, on clown planet! HONK!" - icon_state = "pie" - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("banana",5) - -/obj/item/weapon/reagent_containers/food/snacks/berrypie - name = "Very Berry Pie" - desc = "No black birds, this is a good sign." - icon_state = "pie" - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("berryjuice", 5) - -/obj/item/weapon/reagent_containers/food/snacks/waffles - name = "waffles" - desc = "Mmm, waffles" - icon_state = "waffles" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/eggplantparm - name = "Eggplant Parmigiana" - desc = "The only good recipe for eggplant." - icon_state = "eggplantparm" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/jellydonut - name = "Jelly Donut" - desc = "Oh so gooey on the inside." - icon_state = "donut1" //Placeholder until I stop being lazy. ie. Never. -- Darem - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 3) - bitesize = 2 - if(prob(30)) - src.icon_state = "donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 3) - bitesize = 4 - -/obj/item/weapon/reagent_containers/food/snacks/soylentgreen - name = "Soylent Green" - desc = "Not made of people. Honest." //Totally people. - icon_state = "soylent" - New() - ..() - reagents.add_reagent("nutriment", 14) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/soylenviridians - name = "Soylen Virdians" - desc = "Not made of people. Honest." //Actually honest for once. - icon_state = "soylent" - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/humeatpie - name = "Meat-pie" - var/hname = "" - var/job = null - icon_state = "meatpie" - desc = "The best meatpies on station." - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/momeatpie - name = "Meat-pie" - icon_state = "meatpie" - desc = "A delicious meatpie." - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/tofupie - name = "Tofu-pie" - icon_state = "meatpie" - desc = "A delicious tofu pie." - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/xemeatpie - name = "Xeno-pie" - icon_state = "xenomeatpie" - desc = "A delicious meatpie. Probably heretical." - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 4 - reagents.add_reagent("xenomicrobes", 10) - -/obj/item/weapon/reagent_containers/food/snacks/wingfangchu - name = "Wing Fang Chu" - desc = "A savory dish of alien wing wang in soy." - icon_state = "wingfangchu" - New() - ..() - reagents.add_reagent("nutriment", 1) - reagents.add_reagent("xenomicrobes", 5) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/chaosdonut - name = "Chaos Donut" - desc = "Like life, it never quite tastes the same." - icon_state = "donut1" - New() - ..() - reagents.add_reagent("nutriment", 3) - bitesize = 2 - if(prob(30)) - src.icon_state = "donut2" - src.name = "Frosted Chaos Donut" - var/temp_chaos = pick(1, 2, 3) - if(temp_chaos == 1) - reagents.add_reagent("capsaicin", 3) - else if(temp_chaos == 2) - reagents.add_reagent("frostoil", 3) - else if(temp_chaos == 3) - reagents.add_reagent("nutriment", 3) - -/obj/item/weapon/reagent_containers/food/snacks/humankabob - name = "-kabob" - var/hname = "" - var/job = null - icon_state = "kabob" - desc = "A delicious kabob" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/monkeykabob - name = "Meat-kabob" - icon_state = "kabob" - desc = "A delicious kabob" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/tofukabob - name = "Tofu-kabob" - icon_state = "kabob" - desc = "A delicious kabob" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/cubancarp - name = "Cuban Carp" - desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" - icon_state = "cubancarp" - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("carpotoxin", 3) - reagents.add_reagent("capsaicin", 3) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/popcorn - name = "Popcorm" //not a typo - desc = "Now let's find some cinema." - icon_state = "popcorn" - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 - -/obj/item/weapon/reagent_containers/food/snacks/sosjerky - name = "Scaredy's Private Reserve Beef Jerky" - icon_state = "sosjerky" - desc = "Beef jerky made from the finest space cows." - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/no_raisin - name = "4no Raisins" - icon_state = "4no_raisins" - desc = "Best raisins in the universe. Not sure why." - New() - ..() - reagents.add_reagent("nutriment", 6) - -/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie - name = "Space Twinkie" - icon_state = "space_twinkie" - desc = "Guaranteed to survive longer then you will." - New() - ..() - reagents.add_reagent("sugar", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers - name = "Cheesie Honkers" - icon_state = "cheesie_honkers" - desc = "Bite sized cheesie snacks that will honk all over your mouth" - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/syndicake - name = "Syndi-Cakes" - icon_state = "syndi_cakes" - desc = "An extremely moist snack cake that tastes just as good after being nuked." - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("syndicream", 2) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato - name = "Loaded Baked Potato" - desc = "Totally baked." - icon_state = "loadedbakedpotato" - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/fries - name = "Space Fries" - desc = "AKA: French Fries, Freedom Fries, etc" - icon_state = "fries" - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/cheesyfries - name = "Cheesy Fries" - desc = "Fries. Covered in cheese. Duh." - icon_state = "cheesyfries" - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 - -/////////////////////////////////////////////////Sliceable//////////////////////////////////////// -// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels - -/obj/item/weapon/reagent_containers/food/snacks/meatbread - name = "meatbread loaf" - desc = "The culinary base of every self-respecting eloquen/tg/entleman." - icon_state = "meatbread" - New() - ..() - reagents.add_reagent("nutriment", 40) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the meatbread! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc) - del(src) - return - if(istype(W, /obj/item/weapon/circular_saw)) - W.visible_message(" \red You inaccurate slice the meatbread with your [W]! ", 1) - for(var/i=0,i<3,i++) - new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice - name = "meatbread slice" - desc = "A slice of delicious meatbread." - icon_state = "meatbreadslice" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/xenomeatbread - name = "xenomeatbread loaf" - desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." - icon_state = "xenomeatbread" - New() - ..() - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("xenomicrobes", 35) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the xenomeatbread! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc) - del(src) - return - if(istype(W, /obj/item/weapon/circular_saw)) - W.visible_message(" \red You inaccurate slice the xenomeatbread with your [W]! ", 1) - for(var/i=0,i<3,i++) - new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice - name = "xenomeatbread slice" - desc = "A slice of delicious meatbread. Extra Heretical." - icon_state = "xenobreadslice" - New() - ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("xenomicrobes", 6) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/bananabread - name = "Banana-nut bread" - desc = "A heavenly and filling treat." - icon_state = "tofubread" //filler sprite till there is a banana bread sprite - New() - ..() - reagents.add_reagent("banana", 20) - reagents.add_reagent("nutriment", 20) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the banana bread! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice (src.loc) - del(src) - return - if(istype(W, /obj/item/weapon/circular_saw)) - W.visible_message(" \red You inaccurately slice the banana bread with your [W]! ", 1) - for(var/i=0,i<3,i++) - new /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice - name = "Banana-nut bread slice" - desc = "A slice of delicious banana bread." - icon_state = "tofubreadslice" //Filler sprite - New() - ..() - reagents.add_reagent("banana", 4) - reagents.add_reagent("nutriment", 4) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/tofubread - name = "Tofubread" - icon_state = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." - icon_state = "tofubread" - New() - ..() - reagents.add_reagent("nutriment", 40) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the tofubread! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc) - del(src) - return - if(istype(W, /obj/item/weapon/circular_saw)) - W.visible_message(" \red You inaccurate slice the tofubread with your [W]! ", 1) - for(var/i=0,i<3,i++) - new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice - name = "Tofubread slice" - desc = "A slice of delicious tofubread." - icon_state = "tofubreadslice" - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 - - -/obj/item/weapon/reagent_containers/food/snacks/carrotcake - name = "Carrot Cake" - desc = "A favorite desert of a certain wascally wabbit. Not a lie." - icon_state = "carrotcake" - New() - ..() - reagents.add_reagent("nutriment", 30) - reagents.add_reagent("imidazoline", 10) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the [src]! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice - name = "Carrot Cake slice" - desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." - icon_state = "carrotcake_slice" - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("imidazoline", 2) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/cheesecake - name = "Cheese Cake" - desc = "DANGEROUSLY cheesy." - icon_state = "cheesecake" - New() - ..() - reagents.add_reagent("nutriment", 30) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the [src]! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice - name = "Cheese Cake slice" - desc = "Slice of pure cheestisfaction" - icon_state = "cheesecake_slice" - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/plaincake - name = "Vanilla Cake" - desc = "A plain cake, not a lie." - icon_state = "plaincake" - New() - ..() - reagents.add_reagent("nutriment", 25) - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the [src]! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice - name = "Vanilla Cake slice" - desc = "Just a slice of cake, it is enough for everyone." - icon_state = "plaincake_slice" - New() - ..() - reagents.add_reagent("nutriment", 5) - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/cheesewheel - name = "Cheese wheel" - desc = "A big wheel of delcious Cheddar." - icon_state = "cheesewheel" - New() - ..() - reagents.add_reagent("nutriment", 20) - bitesize = 2 - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/kitchenknife /* || /obj/item/weapon/scalpel*/)) - W.visible_message(" \red You slice the cheese! ", 1) - for(var/i=0,i<5,i++) - new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc) - del(src) - return - if(istype(W, /obj/item/weapon/circular_saw)) - W.visible_message(" \red You inaccurate slice the cheese with your [W]! ", 1) - for(var/i=0,i<3,i++) - new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/cheesewedge - name = "Cheese wedge" - desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." - icon_state = "cheesewedge" - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 ///////////////////////////////////////////////Condiments //Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm new file mode 100644 index 00000000000..92bb19fae29 --- /dev/null +++ b/code/datums/recipe.dm @@ -0,0 +1,117 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * + * /datum/recipe by rastaf0 13 apr 2011 * + * * * * * * * * * * * * * * * * * * * * * * * * * * + * This is powerful and flexible recipe system. + * It exists not only for food. + * supports both reagents and objects as prerequisites. + * In order to use this system you have to define a deriative from /datum/recipe + * * reagents are reagents. Acid, milc, booze, etc. + * * items are objects. Fruits, tools, circuit boards. + * * result is type to create as new object + * * time is optional parameter, you shall use in in your machine, + default /datum/recipe/ procs does not rely on this parameter. + * + * Functions you need: + * /datum/recipe/proc/make(var/obj/container as obj) + * Creates result inside container, + * deletes prerequisite reagents, + * transfers reagents from prerequisite objects, + * deletes all prerequisite objects (even not needed for recipe at the moment). + * + * /proc/select_recipe(list/datum/recipe/avaiable_recipes, obj/obj as obj, exact = 1) + * Wonderful function that select suitable recipe for you. + * obj is a machine (or magik hat) with prerequisites, + * exact = 0 forces algorithm to ignore superfluous stuff. + * + * + * Functions you do not need to call directly but could: + * /datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) + * //1=precisely, 0=insufficiently, -1=superfluous + * + * /datum/recipe/proc/check_items(var/obj/container as obj) + * //1=precisely, 0=insufficiently, -1=superfluous + * + * */ + +/datum/recipe + var/list/reagents // example: = list("berryjuice" = 5) // do not list same reagent twice + var/list/items // example: =list(/obj/item/weapon/crowbar, /obj/item/weapon/welder) // place /foo/bar before /foo + var/result //example: = /obj/item/weapon/reagent_containers/food/snacks/donut + var/time = 100 // 1/10 part of second + + +/datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous + . = 1 + for (var/r_r in reagents) + var/aval_r_amnt = avail_reagents.get_reagent_amount(r_r) + if (!(abs(aval_r_amnt - reagents[r_r])<0.5)) //if NOT equals + if (aval_r_amnt>reagents[r_r]) + . = -1 + else + return 0 + if ((reagents?(reagents.len):(0)) < avail_reagents.reagent_list.len) + return -1 + return . + +/datum/recipe/proc/check_items(var/obj/container as obj) //1=precisely, 0=insufficiently, -1=superfluous + if (!items) + if (locate(/obj/) in container) + return -1 + else + return 1 + . = 1 + var/list/checklist = items.Copy() + for (var/obj/O in container) + var/found = 0 + for (var/type in checklist) + if (istype(O,type)) + checklist-=type + found = 1 + break + if (!found) + . = -1 + if (checklist.len) + return 0 + return . + +//general version +/datum/recipe/proc/make(var/obj/container as obj) + var/obj/result_obj = new result(container) + for (var/obj/O in (container.contents-result_obj)) + O.reagents.trans_to(result_obj, O.reagents.total_volume) + del(O) + container.reagents.clear_reagents() + return result_obj + +// food-related +/datum/recipe/proc/make_food(var/obj/container as obj) + var/obj/result_obj = new result(container) + for (var/obj/O in (container.contents-result_obj)) + O.reagents.del_reagent("nutriment") + O.reagents.update_total() + O.reagents.trans_to(result_obj, O.reagents.total_volume) + del(O) + container.reagents.clear_reagents() + return result_obj + +/proc/select_recipe(var/list/datum/recipe/avaiable_recipes, var/obj/obj as obj, var/exact = 1 as num) + if (!exact) + exact = -1 + var/list/datum/recipe/possible_recipes = new + for (var/datum/recipe/recipe in avaiable_recipes) + if (recipe.check_reagents(obj.reagents)==exact && recipe.check_items(obj)==exact) + possible_recipes+=recipe + if (possible_recipes.len==0) + return null + else if (possible_recipes.len==1) + return possible_recipes[1] + else //okay, let's select the most complicated recipe + var/r_count = 0 + var/i_count = 0 + . = possible_recipes[1] + for (var/datum/recipe/recipe in possible_recipes) + if (recipe.items.len > i_count || (recipe.items.len == i_count && recipe.reagents.len > r_count )) + r_count = recipe.reagents.len + i_count = recipe.items.len + . = recipe + return . diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 8e8160d8b85..1441658b61a 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -795,6 +795,7 @@ icon_state = "table" density = 1 anchored = 1.0 + layer = 2.8 /obj/table/reinforced name = "reinforced table" diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 1a88bad88b1..1daed768afa 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -232,7 +232,7 @@ mypath = "/obj/item/seeds/amanitamycelium" species = "amanita" plantname = "Fly Amanita" - productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/amanita" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita" lifespan = 50 endurance = 35 maturation = 10 @@ -249,7 +249,7 @@ mypath = "/obj/item/seeds/angelmycelium" species = "angel" plantname = "Destroying Angel" - productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/angel" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel" lifespan = 50 endurance = 35 maturation = 12 @@ -266,7 +266,7 @@ mypath = "/obj/item/seeds/libertymycelium" species = "liberty" plantname = "Liberty Cap" - productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/libertycap" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap" lifespan = 25 endurance = 15 maturation = 7 @@ -283,7 +283,7 @@ mypath = "/obj/item/seeds/chantermycelium" species = "chanter" plantname = "Chanterelle" - productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/chanterelle" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle" lifespan = 35 endurance = 20 maturation = 7 @@ -317,7 +317,7 @@ mypath = "/obj/item/seeds/plumpmycelium" species = "plump" plantname = "Plump Helmet" - productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/plumphelmet" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet" lifespan = 25 endurance = 15 maturation = 8 @@ -627,7 +627,7 @@ reagents.add_reagent("nutriment", 2) reagents.add_reagent("imidazoline", 2) -/obj/item/weapon/reagent_containers/food/snacks/grown/amanita +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita seed = "/obj/item/seeds/amanitamycelium" name = "Fly amanita" desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know." @@ -640,7 +640,7 @@ reagents.add_reagent("psilocybin", max(drug_amt, 1)) bitesize = max(round(reagents.total_volume / 2, 1), 1) -/obj/item/weapon/reagent_containers/food/snacks/grown/angel +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel seed = "/obj/item/seeds/angelmycelium" name = "Destroying angel" desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." @@ -653,7 +653,7 @@ reagents.add_reagent("psilocybin", max(drug_amt, 1)) bitesize = max(round(reagents.total_volume / 2, 1), 1) -/obj/item/weapon/reagent_containers/food/snacks/grown/libertycap +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap seed = "/obj/item/seeds/libertymycelium" name = "Liberty cap" desc = "Psilocybe Semilanceata: Liberate yourself!" @@ -665,7 +665,7 @@ reagents.add_reagent("psilocybin", max(drug_amt, 4)) bitesize = max(round(reagents.total_volume / 2), 1) -/obj/item/weapon/reagent_containers/food/snacks/grown/plumphelmet +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet seed = "/obj/item/seeds/plumpmycelium" name = "Plump Helmet" desc = "Plumus Hellmus: Plump, soft and s-so inviting~" @@ -675,7 +675,7 @@ reagents.add_reagent("nutriment", 4) bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/grown/chanterelle +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle seed = "/obj/item/seeds/chantermycelium" name = "Chanterelle" desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty! There's a lot!" diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index 268b3e5ebf3..5b3cb0b4a4b 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -173,6 +173,7 @@ use_power = 1 idle_power_usage = 2 active_power_usage = 4 + layer = TURF_LAYER /obj/machinery/mass_driver name = "mass driver" @@ -587,45 +588,20 @@ name = "Microwave" icon = 'kitchen.dmi' icon_state = "mw" + layer = 2.9 density = 1 anchored = 1 use_power = 1 idle_power_usage = 5 active_power_usage = 100 - var/egg_amount = 0 //Current number of eggs inside - var/flour_amount = 0 //Current amount of flour inside - var/water_amount = 0 //Current amount of water inside - var/monkeymeat_amount = 0 - var/cheese_amount = 0 - var/humanmeat_amount = 0 - var/donkpocket_amount = 0 - var/xenomeat_amount = 0 - var/milk_amount = 0 - var/hotsauce_amount = 0 - var/coldsauce_amount = 0 - var/soysauce_amount = 0 - var/ketchup_amount = 0 - var/tofu_amount = 0 - var/berryjuice_amount = 0 - var/carpmeat_amount = 0 - var/humanmeat_name = "" - var/humanmeat_job = "" - var/operating = 0 // Is it on? - var/dirty = 0 // Does it need cleaning? - var/broken = 0 // How broken is it??? - var/list/available_recipes = list() // List of the recipes you can use - var/obj/item/weapon/reagent_containers/food/snacks/being_cooked = null // The item being cooked - var/obj/item/extra_item = null// One non food item that can be added flags = OPENCONTAINER //Temporary holder while it counts what's in it. - New() // Stuff can be added but not removed without destroying it. - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + /obj/machinery/processor name = "Food Processor" icon = 'kitchen.dmi' icon_state = "processor" + layer = 2.9 density = 1 anchored = 1 var/broken = 0 diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index 2e7507cc81b..83d897e137f 100644 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -72,15 +72,15 @@ /datum/supply_packs/meat name = "Meat crate" - contains = list("/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat", - "/obj/item/weapon/reagent_containers/food/snacks/monkeymeat") + contains = list("/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey", + "/obj/item/weapon/reagent_containers/food/snacks/meat/monkey") cost = 10 containertype = "/obj/crate/freezer" containername = "Meat crate" diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm index fdaec71c8d1..fdcc10ec3ea 100644 --- a/code/defines/obj/vending.dm +++ b/code/defines/obj/vending.dm @@ -3,6 +3,7 @@ desc = "A generic vending machine." icon = 'vending.dmi' icon_state = "generic" + layer = 2.9 anchored = 1 density = 1 var/active = 1 //No sales pitches if off! diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 8ddbfdf1f8e..01748291d8f 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1297,6 +1297,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov /obj/item/weapon/tank/anesthetic name = "Gas Tank (Sleeping Agent)" icon_state = "anesthetic" + item_state = "an_tank" /obj/item/weapon/tank/jetpack name = "Jetpack (Oxygen)" diff --git a/code/game/machinery/gibber.dm b/code/game/machinery/gibber.dm index 0a63a183d25..e1ea84b21b5 100644 --- a/code/game/machinery/gibber.dm +++ b/code/game/machinery/gibber.dm @@ -83,9 +83,9 @@ var/sourcetotalreagents = src.occupant.reagents.total_volume var/totalslabs = 3 - var/obj/item/weapon/reagent_containers/food/snacks/humanmeat/newmeat1 = new /obj/item/weapon/reagent_containers/food/snacks/humanmeat - var/obj/item/weapon/reagent_containers/food/snacks/humanmeat/newmeat2 = new /obj/item/weapon/reagent_containers/food/snacks/humanmeat - var/obj/item/weapon/reagent_containers/food/snacks/humanmeat/newmeat3 = new /obj/item/weapon/reagent_containers/food/snacks/humanmeat + var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat1 = new + var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat2 = new + var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat3 = new newmeat1.name = sourcename + newmeat1.name newmeat1.subjectname = sourcename diff --git a/code/game/machinery/microwave.dm b/code/game/machinery/microwave.dm index fcdda58aa7f..46e7b5b6a5e 100644 --- a/code/game/machinery/microwave.dm +++ b/code/game/machinery/microwave.dm @@ -1,498 +1,198 @@ -/datum/recipe - var/egg_amount = 0 - var/flour_amount = 0 - var/water_amount = 0 - var/cheese_amount = 0 - var/monkeymeat_amount = 0 - var/xenomeat_amount = 0 - var/humanmeat_amount = 0 - var/carpmeat_amount = 0 - var/donkpocket_amount = 0 - var/milk_amount = 0 - var/hotsauce_amount = 0 - var/coldsauce_amount = 0 - var/soysauce_amount = 0 - var/ketchup_amount = 0 - var/tofu_amount = 0 - var/berryjuice_amount = 0 - var/obj/extra_item = null // This is if an extra item is needed, eg a butte for an assburger - var/creates = "" // The item that is spawned when the recipe is made -/datum/recipe/jellydonut - egg_amount = 1 - flour_amount = 1 - berryjuice_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/jellydonut" +// see code/modules/food/recipes_microwave.dm for recipes -/datum/recipe/donut - egg_amount = 1 - flour_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/donut" +/******************* +* Initialising +********************/ +/obj/machinery/microwave + var/operating = 0 // Is it on? + var/dirty = 0 // = {0..100} Does it need cleaning? + var/broken = 0 // ={0,1,2} How broken is it??? + var/list/datum/recipe/available_recipes // List of the recipes you can use + var/list/acceptable_items // List of the items you can put in + var/list/acceptable_reagents // List of the reagents you can put in + var/max_n_of_items = 0 -/datum/recipe/monkeyburger - egg_amount = 0 - flour_amount = 1 - monkeymeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/monkeyburger" - -/datum/recipe/humanburger - flour_amount = 1 - humanmeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/humanburger" - -/datum/recipe/brainburger - flour_amount = 1 - extra_item = /obj/item/brain - creates = "/obj/item/weapon/reagent_containers/food/snacks/brainburger" - -/datum/recipe/roburger/ - flour_amount = 1 - extra_item = /obj/item/robot_parts/head - creates = "/obj/item/weapon/reagent_containers/food/snacks/roburger" - -/datum/recipe/xenoburger - egg_amount = 0 - flour_amount = 1 - xenomeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/xenoburger" - -/datum/recipe/fishburger - carpmeat_amount = 1 - flour_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/fishburger" - -/datum/recipe/tofuburger - tofu_amount = 1 - flour_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/tofuburger" - -/datum/recipe/clownburger - extra_item = /obj/item/clothing/mask/gas/clown_hat - flour_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/clownburger" - -/datum/recipe/mimeburger - extra_item = /obj/item/clothing/head/beret - flour_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/mimeburger" - -/datum/recipe/waffles - egg_amount = 2 - flour_amount = 2 - creates = "/obj/item/weapon/reagent_containers/food/snacks/waffles" - -/datum/recipe/faggot - monkeymeat_amount = 1 - humanmeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/faggot" - -/datum/recipe/donkpocket - flour_amount = 1 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/faggot - creates = "/obj/item/weapon/reagent_containers/food/snacks/donkpocket" - -/datum/recipe/donkpocket_warm - donkpocket_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/donkpocket" - -/datum/recipe/meatbread - flour_amount = 3 - monkeymeat_amount = 3 - cheese_amount = 3 - creates = "/obj/item/weapon/reagent_containers/food/snacks/meatbread" - -/datum/recipe/meatbreadhuman - flour_amount = 3 - humanmeat_amount = 3 - cheese_amount = 3 - creates = "/obj/item/weapon/reagent_containers/food/snacks/meatbread" - -/datum/recipe/xenomeatbread - flour_amount = 3 - xenomeat_amount = 3 - cheese_amount = 3 - creates = "/obj/item/weapon/reagent_containers/food/snacks/xenomeatbread" - -/datum/recipe/bananabread - flour_amount = 3 - egg_amount = 3 - milk_amount = 1 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/banana - creates = "/obj/item/weapon/reagent_containers/food/snacks/bananabread" - -/datum/recipe/omelette - egg_amount = 2 - cheese_amount = 2 - creates = "/obj/item/weapon/reagent_containers/food/snacks/omelette" - -/datum/recipe/muffin - egg_amount = 2 - flour_amount = 1 - milk_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/muffin" - -/datum/recipe/eggplantparm - cheese_amount = 2 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant - creates = "/obj/item/weapon/reagent_containers/food/snacks/eggplantparm" - -/datum/recipe/soylenviridians - flour_amount = 3 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans - creates = "/obj/item/weapon/reagent_containers/food/snacks/soylenviridians" - -/datum/recipe/soylentgreen - flour_amount = 3 - humanmeat_amount = 2 - creates = "/obj/item/weapon/reagent_containers/food/snacks/soylentgreen" - -/datum/recipe/carrotcake - flour_amount = 3 - egg_amount = 3 - milk_amount = 1 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot - creates = "/obj/item/weapon/reagent_containers/food/snacks/carrotcake" - -/datum/recipe/cheesecake - flour_amount = 3 - egg_amount = 3 - cheese_amount = 2 - milk_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/cheesecake" - -/datum/recipe/plaincake - flour_amount = 3 - egg_amount = 3 - milk_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/plaincake" - -/datum/recipe/humeatpie - flour_amount = 2 - humanmeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/humeatpie" - -/datum/recipe/momeatpie - flour_amount = 2 - monkeymeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/momeatpie" - -/datum/recipe/tofupie - flour_amount = 2 - tofu_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/tofupie" - -/datum/recipe/xemeatpie - flour_amount = 2 - xenomeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/xemeatpie" - -/datum/recipe/pie - flour_amount = 2 - extra_item = /obj/item/weapon/reagent_containers/food/snacks/banana - creates = "/obj/item/weapon/reagent_containers/food/snacks/pie" - -/datum/recipe/berrypie - flour_amount = 2 - berryjuice_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/berrypie" - -/datum/recipe/wingfangchu - soysauce_amount = 1 - xenomeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/wingfangchu" - -/datum/recipe/chaosdonut - egg_amount = 1 - flour_amount = 1 - coldsauce_amount = 1 - hotsauce_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/chaosdonut" - -/datum/recipe/humankabob - humanmeat_amount = 2 - extra_item = /obj/item/stack/rods - creates = "/obj/item/weapon/reagent_containers/food/snacks/humankabob" - -/datum/recipe/monkeykabob - monkeymeat_amount = 2 - extra_item = /obj/item/stack/rods - creates = "/obj/item/weapon/reagent_containers/food/snacks/monkeykabob" - -/datum/recipe/tofukabob - tofu_amount = 2 - extra_item = /obj/item/stack/rods - creates = "/obj/item/weapon/reagent_containers/food/snacks/tofukabob" - -/datum/recipe/tofubread - tofu_amount = 3 - cheese_amount = 3 - flour_amount = 3 - creates = "/obj/item/weapon/reagent_containers/food/snacks/tofubread" - -/datum/recipe/loadedbakedpotato - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/potato - cheese_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato" - -/datum/recipe/cheesyfries - extra_item = /obj/item/weapon/reagent_containers/food/snacks/fries - cheese_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/cheesyfries" - -/datum/recipe/cubancarp - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/chili - flour_amount = 1 - carpmeat_amount = 1 - creates = "/obj/item/weapon/reagent_containers/food/snacks/cubancarp" - -/datum/recipe/popcorn - extra_item = /obj/item/weapon/reagent_containers/food/snacks/grown/corn - creates = "/obj/item/weapon/reagent_containers/food/snacks/popcorn" - -// *** After making the recipe above, add it in here! *** -// Special Note: When adding recipes to the list, make sure to list recipes with extra_item before similar recipes without -// one. The reason being that sometimes the FOR loop that searchs through the recipes will just stop -// at the wrong recipe. It's a hack job but it works until I clean up the microwave code. /obj/machinery/microwave/New() - ..() - src.available_recipes += new /datum/recipe/clownburger(src) - src.available_recipes += new /datum/recipe/mimeburger(src) - src.available_recipes += new /datum/recipe/brainburger(src) - src.available_recipes += new /datum/recipe/roburger(src) - src.available_recipes += new /datum/recipe/fishburger(src) - src.available_recipes += new /datum/recipe/tofuburger(src) - src.available_recipes += new /datum/recipe/monkeyburger(src) - src.available_recipes += new /datum/recipe/humanburger(src) - src.available_recipes += new /datum/recipe/cubancarp(src) - src.available_recipes += new /datum/recipe/humankabob(src) - src.available_recipes += new /datum/recipe/monkeykabob(src) - src.available_recipes += new /datum/recipe/tofukabob(src) - src.available_recipes += new /datum/recipe/jellydonut(src) - src.available_recipes += new /datum/recipe/donut(src) - src.available_recipes += new /datum/recipe/waffles(src) - src.available_recipes += new /datum/recipe/faggot(src) - src.available_recipes += new /datum/recipe/donkpocket(src) - src.available_recipes += new /datum/recipe/donkpocket_warm(src) - src.available_recipes += new /datum/recipe/pie(src) - src.available_recipes += new /datum/recipe/berrypie(src) - src.available_recipes += new /datum/recipe/xenoburger(src) - src.available_recipes += new /datum/recipe/meatbread(src) - src.available_recipes += new /datum/recipe/meatbreadhuman(src) - src.available_recipes += new /datum/recipe/omelette (src) - src.available_recipes += new /datum/recipe/muffin (src) - src.available_recipes += new /datum/recipe/eggplantparm(src) - src.available_recipes += new /datum/recipe/soylenviridians(src) - src.available_recipes += new /datum/recipe/soylentgreen(src) - src.available_recipes += new /datum/recipe/carrotcake(src) - src.available_recipes += new /datum/recipe/cheesecake(src) - src.available_recipes += new /datum/recipe/bananabread(src) - src.available_recipes += new /datum/recipe/plaincake(src) - src.available_recipes += new /datum/recipe/humeatpie(src) - src.available_recipes += new /datum/recipe/momeatpie(src) - src.available_recipes += new /datum/recipe/tofupie(src) - src.available_recipes += new /datum/recipe/xemeatpie(src) - src.available_recipes += new /datum/recipe/wingfangchu(src) - src.available_recipes += new /datum/recipe/chaosdonut(src) - src.available_recipes += new /datum/recipe/tofubread(src) - src.available_recipes += new /datum/recipe/loadedbakedpotato(src) - src.available_recipes += new /datum/recipe/cheesyfries(src) - src.available_recipes += new /datum/recipe/xenomeatbread(src) - src.available_recipes += new /datum/recipe/popcorn(src) - - + //..() //do not need this + reagents = new/datum/reagents(100) + reagents.my_atom = src + available_recipes = new + for (var/type in (typesof(/datum/recipe)-/datum/recipe)) + available_recipes+= new type + acceptable_items = new + acceptable_reagents = new + for (var/datum/recipe/recipe in available_recipes) + for (var/item in recipe.items) + //if (!(item in acceptable_items)) + acceptable_items |= item + for (var/reagent in recipe.reagents) + acceptable_reagents |= reagent + if (recipe.items) + max_n_of_items = max(max_n_of_items,recipe.items.len) /******************* * Item Adding ********************/ -obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob) +/obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob) if(src.broken > 0) if(src.broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] starts to fix part of the microwave.")) - sleep(20) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] fixes part of the microwave.")) - src.broken = 1 // Fix it a bit + user.visible_message( \ + "\blue [user] starts to fix part of the microwave.", \ + "\blue You start to fix part of the microwave." \ + ) + if (do_after(user,20)) + user.visible_message( \ + "\blue [user] fixes part of the microwave.", \ + "\blue You have fixed part of the microwave." \ + ) + src.broken = 1 // Fix it a bit else if(src.broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] starts to fix part of the microwave.")) - sleep(20) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] fixes the microwave!")) - src.icon_state = "mw" - src.broken = 0 // Fix it! - src.flags = OPENCONTAINER + user.visible_message( \ + "\blue [user] starts to fix part of the microwave.", \ + "\blue You start to fix part of the microwave." \ + ) + if (do_after(user,20)) + user.visible_message( \ + "\blue [user] fixes the microwave.", \ + "\blue You have fixed the microwave." \ + ) + src.icon_state = "mw" + src.broken = 0 // Fix it! + src.dirty = 0 // just to be sure + src.flags = OPENCONTAINER else - user << "It's broken!" - else if(src.dirty) // The microwave is all dirty so can't be used! + user << "\red It's broken!" + return 1 + else if(src.dirty==100) // The microwave is all dirty so can't be used! if(istype(O, /obj/item/weapon/cleaner)) // If they're trying to clean it then let them - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] starts to clean the microwave.")) - sleep(20) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] has cleaned the microwave!")) - src.dirty = 0 // It's cleaned! - src.icon_state = "mw" - src.flags = OPENCONTAINER + user.visible_message( \ + "\blue [user] starts to clean the microwave.", \ + "\blue You start to clean the microwave." \ + ) + if (do_after(user,20)) + user.visible_message( \ + "\blue [user] has cleaned the microwave.", \ + "\blue You have cleaned the microwave." \ + ) + src.dirty = 0 // It's cleaned! + src.broken = 0 // just to be sure + src.icon_state = "mw" + src.flags = OPENCONTAINER else //Otherwise bad luck!! - return - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/egg)) // If an egg is used, add it - if(src.egg_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds an egg to the microwave.")) - src.egg_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/tofu)) // If tofu is used, add it - if(src.tofu_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds tofu to the microwave.")) - src.tofu_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/flour)) // If flour is used, add it - if(src.flour_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some flour to the microwave.")) - src.flour_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge)) // If cheese is used, add it - if(src.cheese_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some cheese to the microwave.")) - src.cheese_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeymeat)) - if(src.monkeymeat_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some meat to the microwave.")) - src.monkeymeat_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/xenomeat)) - if(src.xenomeat_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some meat to the microwave.")) - src.xenomeat_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/humanmeat)) - if(src.humanmeat_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some meat to the microwave.")) - src.humanmeat_name = O:subjectname - src.humanmeat_job = O:subjectjob - src.humanmeat_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/carpmeat)) - if(src.carpmeat_amount < 5) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds some meat to the microwave.")) - src.carpmeat_amount++ - del(O) - - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donkpocket)) - if(src.donkpocket_amount < 2) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds a donk-pocket to the microwave.")) - src.donkpocket_amount++ - del(O) - - else if(O.is_open_container()) - return - - else - if(!istype(extra_item, /obj/item)) //Allow one non food item to be added! - user.u_equip(O) - extra_item = O - O.loc = src - if((user.client && user.s_active != src)) - user.client.screen -= O - O.dropped(user) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue [user] adds [O] to the microwave.")) + user << "\red It's dirty!" + return 1 + else if(is_type_in_list(O,acceptable_items)) + if (contents.len>=max_n_of_items) + user << "\red This [src] is full of ingredients, you cannot put more." + return 1 + if (istype(O,/obj/item/stack) && O:amount>1) + new O.type (src) + O:use(1) + user.visible_message( \ + "[user] has added one of [O] to \the [src].", \ + "\blue You add one of [O] to \the [src].") else - user << "There already seems to be an unusual item inside, so you don't add this one too." //Let them know it failed for a reason though + user.before_take_item(O) + O.loc = src + user.visible_message( \ + "[user] has added \the [O] to \the [src].", \ + "\blue You add \the [O] to \the [src].") + else if(istype(O,/obj/item/weapon/reagent_containers/glass) || \ + istype(O,/obj/item/weapon/reagent_containers/food/drinks) || \ + istype(O,/obj/item/weapon/reagent_containers/food/condiment) \ + ) + var/obj/item/weapon/reagent_containers/glass/G = O + if (!G.reagents) + return 1 + for (var/datum/reagent/R in G.reagents.reagent_list) + if (!(R.id in acceptable_reagents)) + user << "\red Your [G] contains components unsuitable for cookery." + return 1 + //G.reagents.trans_to(src,G.amount_per_transfer_from_this) + else if(istype(O,/obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = O + user << "\red This is ridiculous. You can not fit \the [G.affecting] in this [src]." + return 1 + else + user << "\red You have no idea what you can cook with this [O]." + return 1 + src.updateUsrDialog() -obj/machinery/microwave/attack_paw(user as mob) +/obj/machinery/microwave/attack_paw(mob/user as mob) return src.attack_hand(user) +/obj/machinery/microwave/attack_ai(mob/user as mob) + return 0 + +/obj/machinery/microwave/attack_hand(mob/user as mob) + user.machine = src + interact(user) /******************* * Microwave Menu ********************/ -/obj/machinery/microwave/attack_hand(user as mob) // The microwave Menu - var/dat - var/xenodisplay - var/sauces - while(src.reagents.total_volume) //A series of while loops to count up how much of the relevant reagents there are. - while(src.reagents.get_reagent_amount("capsaicin") > 4) // And convert them into other variables. Ugly but it works for now. - src.reagents.remove_reagent("capsaicin", 5) - src.hotsauce_amount++ - while(src.reagents.get_reagent_amount("frostoil") > 4) - src.reagents.remove_reagent("frostoil", 5) - src.coldsauce_amount++ - while(src.reagents.get_reagent_amount("soysauce") > 4) - src.reagents.remove_reagent("soysauce", 5) - src.soysauce_amount++ - while(src.reagents.get_reagent_amount("milk") > 4) - src.reagents.remove_reagent("milk", 5) - src.milk_amount++ - while(src.reagents.get_reagent_amount("soymilk") > 4) - src.reagents.remove_reagent("soymilk", 5) - src.milk_amount++ - while(src.reagents.get_reagent_amount("ketchup") > 4) - src.reagents.remove_reagent("ketchup", 5) - src.ketchup_amount++ - while(src.reagents.get_reagent_amount("berryjuice") > 4) - src.reagents.remove_reagent("berryjuice", 5) - src.berryjuice_amount++ - src.reagents.clear_reagents() - if(src.hotsauce_amount) sauces = sauces + "Hotsauce:[src.hotsauce_amount] units.
" - if(src.coldsauce_amount) sauces = sauces + "Coldsauce:[src.coldsauce_amount] units.
" - if(src.soysauce_amount) sauces = sauces + "Soysauce:[src.soysauce_amount] units.
" - if(src.berryjuice_amount) sauces = sauces + "Berry Juice:[src.berryjuice_amount] units.
" - if(src.ketchup_amount) sauces = sauces + "Ketchup:[src.ketchup_amount] units.
" - if(src.xenomeat_amount) xenodisplay = "Alien Meat: [src.xenomeat_amount]
" +/obj/machinery/microwave/proc/interact(mob/user as mob) // The microwave Menu + var/dat = "" if(src.broken > 0) - dat = {" -Bzzzzttttt - "} + dat = {"Bzzzzttttt"} else if(src.operating) - dat = {" -Microwaving in progress!
-Please wait...!

-
-"} - else if(src.dirty) - dat = {" -This microwave is dirty!
-Please clean it before use!

-
-"} + dat = {"Microwaving in progress!
Please wait...!
"} + else if(src.dirty==100) + dat = {"This microwave is dirty!
Please clean it before use!
"} else - dat = {" -Eggs:[src.egg_amount] eggs
-Flour:[src.flour_amount] cups of flour
-Cheese:[src.cheese_amount] cheese wedges
-Tofu:[src.tofu_amount] tofu chunks
-Monkey Meat:[src.monkeymeat_amount] slabs of meat
-Turnovers:[src.donkpocket_amount] turnovers
-Milk:[src.milk_amount] cups of milk.
-[sauces] -Human Meat:[src.humanmeat_amount] slabs of meat
-Carp Meat:[src.carpmeat_amount] fillets of meat
-[xenodisplay] -
-
-Turn on!
-
Dispose contents!
+ var/list/items_counts = new + var/list/items_measures = new + var/list/items_measures_p = new + for (var/obj/O in contents) + var/display_name = O.name + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg)) + items_measures[display_name] = "egg" + items_measures_p[display_name] = "eggs" + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/flour)) + items_measures[display_name] = "cup of flour" + items_measures_p[display_name] = "cups of flour" + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/tofu)) + items_measures[display_name] = "tofu chunk" + items_measures_p[display_name] = "tofu chunks" + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/meat)) //any meat + items_measures[display_name] = "slab of meat" + items_measures_p[display_name] = "slabs of meat" + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/donkpocket)) + display_name = "Turnovers" + items_measures[display_name] = "turnover" + items_measures_p[display_name] = "turnovers" + if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/carpmeat)) + items_measures[display_name] = "fillet of meat" + items_measures_p[display_name] = "fillets of meat" + items_counts[display_name]++ + for (var/O in items_counts) + var/N = items_counts[O] + if (!(O in items_measures)) + dat += {"[capitalize(O)]: [N] [lowertext(O)]\s
"} + else + if (N==1) + dat += {"[capitalize(O)]: [N] [items_measures[O]]
"} + else + dat += {"[capitalize(O)]: [N] [items_measures_p[O]]
"} + + for (var/datum/reagent/R in reagents.reagent_list) + var/display_name = R.name + if (R.id == "capsaicin") + display_name = "Hotsauce" + if (R.id == "frostoil") + display_name = "Coldsauce" + dat += {"[display_name]: [R.volume] unit\s
"} + + if (items_counts.len==0 && reagents.reagent_list.len==0) + dat = {"The microwave is empty
"} + else + dat = {"Ingredients:
[dat]"} + dat += {"

\ +
Turn on!
\ +
Dispose contents!
\ "} user << browse("Microwave Controls[dat]", "window=microwave") @@ -505,90 +205,156 @@ Please clean it before use!
* Microwave Menu Handling/Cooking ************************************/ +/obj/machinery/microwave/proc/cook() + start() + if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run + if (!wzhzhzh(10)) + abort() + return + stop() + return + + var/datum/recipe/recipe = select_recipe(available_recipes,src) + var/obj/cooked + if (!recipe) + dirty += 1 + if (prob(max(10,dirty*5))) + if (!wzhzhzh(4)) + abort() + return + muck_start() + wzhzhzh(4) + muck_finish() + cooked = fail() + cooked.loc = src.loc + return + else if (has_extra_item()) + if (!wzhzhzh(4)) + abort() + return + broke() + cooked = fail() + cooked.loc = src.loc + return + else + if (!wzhzhzh(10)) + abort() + return + stop() + cooked = fail() + cooked.loc = src.loc + return + else + var/halftime = round(recipe.time/10/2) + if (!wzhzhzh(halftime)) + abort() + return + if (!wzhzhzh(halftime)) + abort() + cooked = fail() + cooked.loc = src.loc + return + cooked = recipe.make_food(src) + stop() + cooked.loc = src.loc + return + +/obj/machinery/microwave/proc/wzhzhzh(var/seconds as num) + for (var/i=1 to seconds) + if (stat & (NOPOWER|BROKEN)) + return 0 + use_power(500) + sleep(10) + return 1 + +/obj/machinery/microwave/proc/has_extra_item() + for (var/obj/O in contents) + if ( \ + !istype(O,/obj/item/weapon/reagent_containers/food) && \ + !istype(O, /obj/item/weapon/grown) \ + ) + return 1 + return 0 + +/obj/machinery/microwave/proc/start() + src.visible_message("\blue The microwave turns on.", "\blue You hear a microwave.") + src.operating = 1 + src.icon_state = "mw1" + src.updateUsrDialog() + +/obj/machinery/microwave/proc/abort() + src.operating = 0 // Turn it off again aferwards + src.icon_state = "mw" + src.updateUsrDialog() + +/obj/machinery/microwave/proc/stop() + playsound(src.loc, 'ding.ogg', 50, 1) + src.operating = 0 // Turn it off again aferwards + src.icon_state = "mw" + src.updateUsrDialog() + +/obj/machinery/microwave/proc/dispose() + for (var/obj/O in contents) + del(O) + src.reagents.clear_reagents() + usr << "\blue You dispose of the microwave contents." + +/obj/machinery/microwave/proc/muck_start() + playsound(src.loc, 'splat.ogg', 50, 1) // Play a splat sound + src.icon_state = "mwbloody1" // Make it look dirty!! + +/obj/machinery/microwave/proc/muck_finish() + playsound(src.loc, 'ding.ogg', 50, 1) + src.visible_message("\red The microwave gets covered in muck!") + src.dirty = 100 // Make it dirty so it can't be used util cleaned + src.flags = null //So you can't add condiments + src.icon_state = "mwbloody" // Make it look dirty too + src.operating = 0 // Turn it off again aferwards + src.updateUsrDialog() + +/obj/machinery/microwave/proc/broke() + var/datum/effects/system/spark_spread/s = new + s.set_up(2, 1, src) + s.start() + src.icon_state = "mwb" // Make it look all busted up and shit + src.visible_message("\red The microwave breaks!") //Let them know they're stupid + src.broken = 2 // Make it broken so it can't be used util fixed + src.flags = null //So you can't add condiments + src.operating = 0 // Turn it off again aferwards + src.updateUsrDialog() + +/obj/machinery/microwave/proc/fail() + var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src) + var/amount = 0 + for (var/obj/O in contents-ffuu) + amount++ + if (O.reagents) + var/id = O.reagents.get_master_reagent_id() + if (id) + amount+=O.reagents.get_reagent_amount(id) + del(O) + src.reagents.clear_reagents() + ffuu.reagents.add_reagent("carbon", amount) + ffuu.reagents.add_reagent("toxin", amount/10) + return ffuu + /obj/machinery/microwave/Topic(href, href_list) if(..()) return usr.machine = src - src.add_fingerprint(usr) - - if(href_list["cook"]) - if(!src.operating) - var/operation = text2num(href_list["cook"]) - - var/cook_time = 200 // The time to wait before spawning the item - var/cooked_item = null - - if(operation == 1) // If cook was pressed - for(var/mob/V in viewers(src, null)) - V.show_message(text("\blue The microwave turns on.")) - for(var/datum/recipe/R in src.available_recipes) //Look through the recipe list we made above - if(src.carpmeat_amount == R.carpmeat_amount && src.berryjuice_amount >= R.berryjuice_amount && src.cheese_amount == R.cheese_amount && src.tofu_amount == R.tofu_amount && src.egg_amount == R.egg_amount && src.flour_amount == R.flour_amount && src.monkeymeat_amount == R.monkeymeat_amount && src.humanmeat_amount == R.humanmeat_amount && src.donkpocket_amount == R.donkpocket_amount && src.xenomeat_amount == R.xenomeat_amount && src.hotsauce_amount >= R.hotsauce_amount && src.coldsauce_amount >= R.coldsauce_amount && src.soysauce_amount >= R.soysauce_amount && src.ketchup_amount >= R.ketchup_amount && src.milk_amount >= R.milk_amount) // Check if it's an accepted recipe - var/thing - if(src.extra_item) - if (src.extra_item.type == R.extra_item) thing = 1 - if(R.extra_item == null || thing) // Just in case the recipe doesn't have an extra item in it - src.clear() - src.extra_item = null // And the extra item - cooked_item = R.creates // Store the item that will be created - - if(cooked_item == null) //Oops that wasn't a recipe dummy!!! - if(src.carpmeat_amount > 0 || src.egg_amount > 0 || src.tofu_amount > 0 || src.flour_amount > 0 || src.water_amount > 0 || src.monkeymeat_amount > 0 || src.humanmeat_amount > 0 || src.donkpocket_amount > 0 || src.hotsauce_amount > 0 ||src.coldsauce_amount > 0 || src.soysauce_amount > 0 || src.ketchup_amount > 0 || src.milk_amount > 0 && src.extra_item == null) //Make sure there's something inside though to dirty it - src.operating = 1 // Turn it on - src.icon_state = "mw1" - src.updateUsrDialog() - src.clear() - sleep(40) // Half way through - playsound(src.loc, 'splat.ogg', 50, 1) // Play a splat sound - icon_state = "mwbloody1" // Make it look dirty!! - sleep(40) // Then at the end let it finish normally - playsound(src.loc, 'ding.ogg', 50, 1) - for(var/mob/V in viewers(src, null)) - V.show_message(text("\red The microwave gets covered in muck!")) - src.dirty = 1 // Make it dirty so it can't be used util cleaned - src.flags = null //So you can't add condiments - src.icon_state = "mwbloody" // Make it look dirty too - src.operating = 0 // Turn it off again aferwards - // Don't clear the extra item though so important stuff can't be deleted this way and - // it prolly wouldn't make a mess anyway - - else if(src.extra_item != null) // However if there's a weird item inside we want to break it, not dirty it - src.operating = 1 // Turn it on - src.icon_state = "mw1" - src.updateUsrDialog() - src.clear() - sleep(60) // Wait a while - var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread - s.set_up(2, 1, src) - s.start() - icon_state = "mwb" // Make it look all busted up and shit - for(var/mob/V in viewers(src, null)) - V.show_message(text("\red The microwave breaks!")) //Let them know they're stupid - src.broken = 2 // Make it broken so it can't be used util fixed - src.operating = 0 // Turn it off again aferwards - src.flags = null //So you can't add condiments - src.extra_item.loc = get_turf(src) // Eject the extra item so important shit like the disk can't be destroyed in there - src.extra_item = null - - else //Otherwise it was empty, so just turn it on then off again with nothing happening - for(var/obj/O in src.contents) - del(O) //with how brains work now, need to make sure they get deleted so the poor player inside it gets ghosted. --NEO - src.operating = 1 - src.icon_state = "mw1" - src.updateUsrDialog() - sleep(80) - src.icon_state = "mw" - playsound(src.loc, 'ding.ogg', 50, 1) - src.operating = 0 - - if(operation == 2) // If dispose was pressed, empty the microwave - src.clear() - src.reagents.clear_reagents() - if(src.extra_item != null) - src.extra_item.loc = get_turf(src) // Eject the extra item so important shit like the disk can't be destroyed in there - src.extra_item = null - usr << "You dispose of the microwave contents." + if(src.operating) + src.updateUsrDialog() + return + switch(href_list["action"]) + if ("cook") + cook() + + if ("dispose") + dispose() + return +/* var/cooking = cooked_item // Get the item that needs to be spawned if(!isnull(cooking)) src.operating = 1 // Turn it on so it can't be used again while it's cooking @@ -622,24 +388,4 @@ Please clean it before use!
src.icon_state = "mw" else return - -/obj/machinery/microwave/proc/clear() - src.egg_amount = 0 - src.flour_amount = 0 - src.xenomeat_amount = 0 - src.cheese_amount = 0 - src.water_amount = 0 - src.humanmeat_amount = 0 - src.monkeymeat_amount = 0 - src.donkpocket_amount = 0 - src.milk_amount = 0 - src.hotsauce_amount = 0 - src.coldsauce_amount = 0 - src.soysauce_amount = 0 - src.tofu_amount = 0 - src.ketchup_amount = 0 - src.berryjuice_amount = 0 - src.carpmeat_amount = 0 - src.updateUsrDialog() - //src.temp.reagents.clear_reagents() - return \ No newline at end of file +*/ diff --git a/code/game/machinery/processor.dm b/code/game/machinery/processor.dm index fc99311783c..5b282bcc2e9 100644 --- a/code/game/machinery/processor.dm +++ b/code/game/machinery/processor.dm @@ -12,14 +12,19 @@ wheat input = /obj/item/weapon/reagent_containers/food/snacks/grown/wheat output = /obj/item/weapon/reagent_containers/food/snacks/flour + + meat + input = /obj/item/weapon/reagent_containers/food/snacks/meat + output = /obj/item/weapon/reagent_containers/food/snacks/faggot +/* monkeymeat - input = /obj/item/weapon/reagent_containers/food/snacks/monkeymeat + input = /obj/item/weapon/reagent_containers/food/snacks/meat/monkey output = /obj/item/weapon/reagent_containers/food/snacks/faggot humanmeat - input = /obj/item/weapon/reagent_containers/food/snacks/humanmeat + input = /obj/item/weapon/reagent_containers/food/snacks/meat/human output = /obj/item/weapon/reagent_containers/food/snacks/faggot - +*/ potato input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato output = /obj/item/weapon/reagent_containers/food/snacks/fries diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm index ff4617a14b8..c2a6e3901a3 100644 --- a/code/game/magic/cultist/ritual.dm +++ b/code/game/magic/cultist/ritual.dm @@ -55,6 +55,7 @@ var/runedec = 0 icon_state = "1" var/visibility = 0 unacidable = 1 + layer = TURF_LAYER var diff --git a/code/game/objects/closets/kitchen.dm b/code/game/objects/closets/kitchen.dm index 778e98a3423..5c7b934998d 100644 --- a/code/game/objects/closets/kitchen.dm +++ b/code/game/objects/closets/kitchen.dm @@ -42,12 +42,12 @@ sleep(2) new /obj/item/kitchen/egg_box(src) new /obj/item/kitchen/egg_box(src) - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src) - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) new /obj/item/weapon/kitchenknife(src) if(prob(95)) - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src) - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src) else new /obj/item/weapon/reagent_containers/food/snacks/xenomeat(src) new /obj/item/weapon/reagent_containers/food/snacks/xenomeat(src) diff --git a/code/game/objects/items/helper_procs.dm b/code/game/objects/items/helper_procs.dm index c06f46cb1aa..334ec2e5e22 100644 --- a/code/game/objects/items/helper_procs.dm +++ b/code/game/objects/items/helper_procs.dm @@ -67,8 +67,6 @@ /proc/is_type_in_list(var/atom/A, var/list/L) for(var/type in L) - if(isnull(type)) - continue if(istype(A, type)) return 1 return 0 @@ -89,36 +87,36 @@ var/global/list/common_tools = list( return 0 /proc/iswrench(O) - if(O && istype(O, /obj/item/weapon/wrench)) + if(istype(O, /obj/item/weapon/wrench)) return 1 return 0 /proc/iswelder(O) - if(O && istype(O, /obj/item/weapon/weldingtool)) + if(istype(O, /obj/item/weapon/weldingtool)) return 1 return 0 /proc/iscoil(O) - if(O && istype(O, /obj/item/weapon/cable_coil)) + if(istype(O, /obj/item/weapon/cable_coil)) return 1 return 0 /proc/iswirecutter(O) - if(O && istype(O, /obj/item/weapon/wirecutters)) + if(istype(O, /obj/item/weapon/wirecutters)) return 1 return 0 /proc/isscrewdriver(O) - if(O && istype(O, /obj/item/weapon/screwdriver)) + if(istype(O, /obj/item/weapon/screwdriver)) return 1 return 0 /proc/ismultitool(O) - if(O && istype(O, /obj/item/device/multitool)) + if(istype(O, /obj/item/device/multitool)) return 1 return 0 /proc/iscrowbar(O) - if(O && istype(O, /obj/item/weapon/crowbar)) + if(istype(O, /obj/item/weapon/crowbar)) return 1 return 0 diff --git a/code/game/objects/kitchen.dm b/code/game/objects/kitchen.dm index b7548b83bd1..ac3d615659f 100644 --- a/code/game/objects/kitchen.dm +++ b/code/game/objects/kitchen.dm @@ -58,11 +58,11 @@ if(src.meattype == 1) if(src.meat > 1) src.meat-- - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat( src.loc ) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey( src.loc ) usr << "You remove some meat from the monkey." else if(src.meat == 1) src.meat-- - new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src.loc) + new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src.loc) usr << "You remove the last piece of meat from the monkey!" src.icon_state = "spike" src.occupied = 0 diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm new file mode 100644 index 00000000000..ef78e7bae78 --- /dev/null +++ b/code/modules/food/food.dm @@ -0,0 +1,936 @@ + +////////////////////////////////////////////////// +////////////////////////////////////////////Snacks +////////////////////////////////////////////////// +//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created +// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten. + +//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40 +// total for the item because you want to leave space for extra condiments. If you want effects besides healing, add a reagent for +// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use +// effects (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way). + +//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to +// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a +// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all +// the bites. No more contained reagents = no more bites. + +//Here is an example of the new formatting for anyone who wants to add more food items. +///obj/item/weapon/reagent_containers/food/snacks/xenoburger //Identification path for the object. +// 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. +// ..() //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. +// bitesize = 3 //This is the amount each bite consumes. + +/obj/item/weapon/reagent_containers/food/snacks/banana + name = "Banana" + desc = "A banana." + icon = 'items.dmi' + icon_state = "banana" + item_state = "banana" + On_Consume() + var/mob/M = usr + var/obj/item/weapon/bananapeel/W = new /obj/item/weapon/bananapeel( M ) + M << "\blue You peel the banana." + M.put_in_hand(W) + W.add_fingerprint(M) + New() + ..() + reagents.add_reagent("banana", 5) + bitesize = 5 + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/weapon/reagent_containers/food/snacks/candy + name = "candy" + desc = "Nougat love it or hate it." + icon_state = "candy" + New() + ..() + reagents.add_reagent("nutriment", 1) + reagents.add_reagent("sugar", 3) + +/obj/item/weapon/reagent_containers/food/snacks/candy_corn + name = "candy corm" //Not a typo + desc = "It's a handful of candy corm. Can be stored in a detective's hat." + icon_state = "candy_corn" + New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chips + name = "chips" + desc = "Commander Riker's What-The-Crisps" + icon_state = "chips" + New() + ..() + reagents.add_reagent("nutriment", 3) + +/obj/item/weapon/reagent_containers/food/snacks/donut + name = "donut" + desc = "Goes great with Robust Coffee." + icon_state = "donut1" + New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 1) + if(prob(30)) + src.icon_state = "donut2" + src.name = "frosted donut" + src.bitesize = 2 + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("sprinkles", 1) + +/obj/item/weapon/reagent_containers/food/snacks/egg + name = "egg" + desc = "An egg!" + icon_state = "egg" + New() + ..() + reagents.add_reagent("nutriment", 1) + +/obj/item/weapon/reagent_containers/food/snacks/flour + name = "flour" + desc = "Some flour" + icon_state = "flour" + New() + ..() + reagents.add_reagent("nutriment", 1) + +/obj/item/weapon/reagent_containers/food/snacks/meat + name = "meat" + desc = "A slab of meat" + icon_state = "meat" + New() + ..() + reagents.add_reagent("nutriment", 3) + +/obj/item/weapon/reagent_containers/food/snacks/meat/human + name = "-meat" + var/subjectname = "" + var/subjectjob = null + +/obj/item/weapon/reagent_containers/food/snacks/meat/monkey + //same as plain meat + +/obj/item/weapon/reagent_containers/food/snacks/tofu + name = "Tofu" + icon_state = "tofu" + desc = "We all love tofu." + New() + ..() + reagents.add_reagent("nutriment", 3) + + +/obj/item/weapon/reagent_containers/food/snacks/carpmeat + name = "carp fillet" + desc = "A fillet of spess carp meat" + icon_state = "fishfillet" + New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("carpotoxin", 3) + +/obj/item/weapon/reagent_containers/food/snacks/xenomeat + name = "meat" + desc = "A slab of meat" + icon_state = "xenomeat" + New() + ..() + reagents.add_reagent("nutriment", 3) + +/obj/item/weapon/reagent_containers/food/snacks/faggot + name = "Faggot" + desc = "A great meal all round. Not a cord of wood." + icon_state = "faggot" + New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket + name = "Donk-pocket" + desc = "The food of choice for the seasoned traitor." + icon_state = "donkpocket" + New() + ..() + reagents.add_reagent("nutriment", 2) + var/warm = 0 + proc/cooltime() //Not working, derp? + if (src.warm) + spawn( 4200 ) + src.warm = 0 + src.reagents.del_reagent("tricordrazine") + src.name = "donk-pocket" + return + +/obj/item/weapon/reagent_containers/food/snacks/brainburger + name = "brainburger" + desc = "A strange looking burger. It looks almost sentient." + icon_state = "brainburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/human + var/hname = "" + var/job = null + +/obj/item/weapon/reagent_containers/food/snacks/human/burger + name = "-burger" + desc = "A bloody burger." + icon_state = "hburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/monkeyburger + name = "burger" + desc = "The cornerstone of every nutritious breakfast." + icon_state = "hburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/fishburger + name = "Fillet -o- Carp Sandwich" + desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp." + icon_state = "fishburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("carpotoxin", 3) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/tofuburger + name = "Tofu Burger" + desc = "What.. is that meat?" + icon_state = "tofuburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/roburger + name = "roburger" + desc = "The lettuce is the only organic component. Beep." + icon_state = "roburger" + New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("nanites", 10) + bitesize = 3 + + +/obj/item/weapon/reagent_containers/food/snacks/roburgerbig + name = "roburger" + desc = "This massive patty looks like poison. Beep." + icon_state = "roburger" + volume = 100 + New() + ..() + reagents.add_reagent("nanites", 100) + bitesize = 0.1 + +/obj/item/weapon/reagent_containers/food/snacks/xenoburger + name = "xenoburger" + desc = "Smells caustic. Tastes like heresy." + icon_state = "xburger" + New() + ..() + reagents.add_reagent("xenomicrobes", 10) + reagents.add_reagent("nutriment", 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/clownburger + name = "Clown Burger" + desc = "This tastes funny..." + icon_state = "clownburger" + New() + ..() +/* + var/datum/disease/F = new /datum/disease/pierrot_throat(0) + var/list/data = list("virus"= F) + reagents.add_reagent("blood", 4, data) +*/ + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/mimeburger + name = "Mime Burger" + desc = "It's taste defies language." + icon_state = "mimeburger" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/omelette + name = "Omelette Du Fromage" + desc = "That's all you can say!" + icon_state = "omelette" + //var/herp = 0 + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 1 + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/kitchen/utensil/fork)) + if (W.icon_state == "forkloaded") + user << "\red You already have omelette on your fork." + return + //W.icon = 'kitchen.dmi' + W.icon_state = "forkloaded" + /*if (herp) + world << "[user] takes a piece of omelette with his fork!"*/ + //Why this unecessary check? Oh I know, because I'm bad >:C + // Yes, you are. You griefing my badmin toys. --rastaf0 + user.visible_message( \ + "[user] takes a piece of omelette with their fork!", \ + "\blue You take a piece of omelette with your fork!" \ + ) + reagents.remove_reagent("nutriment", 1) + if (reagents.total_volume <= 0) + del(src) +/* + * Unsused. +/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload + name = "Omelette Du Fromage" + desc = "That's all you can say!" + New() + ..() + reagents.add_reagent("nutriment", 1) +*/ + +/obj/item/weapon/reagent_containers/food/snacks/muffin + name = "Muffin" + desc = "A delicious and spongy little cake" + icon_state = "muffin" + New() + ..() + reagents.add_reagent("nutriment", 6) + +/obj/item/weapon/reagent_containers/food/snacks/pie + name = "Banana Cream Pie" + desc = "Just like back home, on clown planet! HONK!" + icon_state = "pie" + New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("banana",5) +/* +/obj/item/weapon/reagent_containers/food/snacks/berrypie + name = "Very Berry Pie" + desc = "No black birds, this is a good sign." + icon_state = "pie" + New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("berryjuice", 5) +*/ + +/obj/item/weapon/reagent_containers/food/snacks/berryclafoutis + name = "Berry Clafoutis" + desc = "No black birds, this is a good sign." + icon_state = "berryclafoutis" + New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/waffles + name = "waffles" + desc = "Mmm, waffles" + icon_state = "waffles" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/eggplantparm + name = "Eggplant Parmigiana" + desc = "The only good recipe for eggplant." + icon_state = "eggplantparm" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/jellydonut + name = "Jelly Donut" + desc = "Oh so gooey on the inside." + icon_state = "donut1" //Placeholder until I stop being lazy. ie. Never. -- Darem + New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 3) + bitesize = 2 + if(prob(30)) + src.icon_state = "donut2" + src.name = "Frosted Jelly Donut" + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 3) + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/soylentgreen + name = "Soylent Green" + desc = "Not made of people. Honest." //Totally people. + icon_state = "soylent" + New() + ..() + reagents.add_reagent("nutriment", 14) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/soylenviridians + name = "Soylen Virdians" + desc = "Not made of people. Honest." //Actually honest for once. + icon_state = "soylent" + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/humeatpie + name = "Meat-pie" +// var/hname = "" //TODO: need some way to find out that facts for the characters. +// var/job = null + icon_state = "meatpie" + desc = "The best meatpies on station." + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/momeatpie + name = "Meat-pie" + icon_state = "meatpie" + desc = "A delicious meatpie." + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/tofupie + name = "Tofu-pie" + icon_state = "meatpie" + desc = "A delicious tofu pie." + New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/xemeatpie + name = "Xeno-pie" + icon_state = "xenomeatpie" + desc = "A delicious meatpie. Probably heretical." + New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("xenomicrobes", 10) + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/wingfangchu + name = "Wing Fang Chu" + desc = "A savory dish of alien wing wang in soy." + icon_state = "wingfangchu" + New() + ..() + reagents.add_reagent("nutriment", 1) + reagents.add_reagent("xenomicrobes", 5) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chaosdonut + name = "Chaos Donut" + desc = "Like life, it never quite tastes the same." + icon_state = "donut1" + New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 2 + if(prob(30)) + src.icon_state = "donut2" + src.name = "Frosted Chaos Donut" + reagents.add_reagent("sprinkles", 3) + reagents.add_reagent(pick("capsaicin", "frostoil", "nutriment"), 3) + +/obj/item/weapon/reagent_containers/food/snacks/human/kabob + name = "-kabob" + icon_state = "kabob" + desc = "A delicious kabob" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/monkeykabob + name = "Meat-kabob" + icon_state = "kabob" + desc = "A delicious kabob" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/tofukabob + name = "Tofu-kabob" + icon_state = "kabob" + desc = "A delicious kabob" + New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cubancarp + name = "Cuban Carp" + desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" + icon_state = "cubancarp" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("carpotoxin", 3) + reagents.add_reagent("capsaicin", 3) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/popcorn + name = "Popcorm" //not a typo + desc = "Now let's find some cinema." + icon_state = "popcorn" + New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 + +/obj/item/weapon/reagent_containers/food/snacks/sosjerky + name = "Scaredy's Private Reserve Beef Jerky" + icon_state = "sosjerky" + desc = "Beef jerky made from the finest space cows." + New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/no_raisin + name = "4no Raisins" + icon_state = "4no_raisins" + desc = "Best raisins in the universe. Not sure why." + New() + ..() + reagents.add_reagent("nutriment", 6) + +/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie + name = "Space Twinkie" + icon_state = "space_twinkie" + desc = "Guaranteed to survive longer then you will." + New() + ..() + reagents.add_reagent("sugar", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers + name = "Cheesie Honkers" + icon_state = "cheesie_honkers" + desc = "Bite sized cheesie snacks that will honk all over your mouth" + New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/syndicake + name = "Syndi-Cakes" + icon_state = "syndi_cakes" + desc = "An extremely moist snack cake that tastes just as good after being nuked." + New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("syndicream", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato + name = "Loaded Baked Potato" + desc = "Totally baked." + icon_state = "loadedbakedpotato" + New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/fries + name = "Space Fries" + desc = "AKA: French Fries, Freedom Fries, etc" + icon_state = "fries" + New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cheesyfries + name = "Cheesy Fries" + desc = "Fries. Covered in cheese. Duh." + icon_state = "cheesyfries" + New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cheesyfries + name = "Cheesy Fries" + desc = "Fries. Covered in cheese. Duh." + icon_state = "cheesyfries" + New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/fortunecookie + name = "Fortune cookie" + desc = "A true prophecy in each cookie!" + icon_state = "fortune_cookie" + New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 2 + On_Consume() + var/mob/M = usr + var/obj/item/weapon/paper/paper = locate() in src + M.visible_message( \ + "\blue [M] takes a piece of paper from the cookie!", \ + "\blue You take a piece of paper from the cookie! Read it!" \ + ) + M.put_in_hand(paper) + paper.add_fingerprint(M) + +/obj/item/weapon/reagent_containers/food/snacks/badrecipe + name = "Burned mess" + desc = "Someone should be demoted from chef for this." + icon_state = "badrecipe" + New() + ..() + reagents.add_reagent("toxin", 1) + reagents.add_reagent("carbon", 1) + bitesize = 1 + +/obj/item/weapon/reagent_containers/food/snacks/meatstake + name = "Meat stake" + desc = "A piece of hot spicy meat." + icon_state = "meatstake" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("capsaicin", 3) + bitesize = 2 + + +/obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff + name = "Spacy Liberty Duff" + desc = "" //TODO + icon_state = "spacylibertyduff" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("water", 6) + reagents.add_reagent("psilocybin", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/amanitajelly + name = "Amanita Jelly" + desc = "Looks curiously" + icon_state = "amanitajelly" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("water", 6) + reagents.add_reagent("psilocybin", 6) + bitesize = 3 +/* +/obj/item/weapon/reagent_containers/food/snacks/poppypretzel + name = "Poppy pretzel" + desc = "" //TODO + icon_state = "poppypretzel" + bitesize = 2 + New() + ..() + reagents.add_reagent("nutriment", 5) + bitesize = 2 +*/ + +/obj/item/weapon/reagent_containers/food/snacks/meatballsoup + name = "Meatball soup" + desc = "" //TODO + icon_state = "meatballsoup" + New() + ..() + reagents.add_reagent("nutriment", 10) + reagents.add_reagent("water", 10) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup + name = "Vegetable soup" + desc = "" //TODO + icon_state = "vegetablesoup" + New() + ..() + reagents.add_reagent("nutriment", 10) + reagents.add_reagent("water", 10) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/nettlesoup + name = "Nettle soup" + desc = "" //TODO + icon_state = "nettlesoup" + New() + ..() + reagents.add_reagent("nutriment", 10) + reagents.add_reagent("water", 10) + reagents.add_reagent("tricordrazine", 3) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/hotchili + name = "Hot Chili" + desc = "" //TODO + icon_state = "hotchili" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("capsaicin", 3) + reagents.add_reagent("tomatojuice", 2) + bitesize = 5 + + +/obj/item/weapon/reagent_containers/food/snacks/coldchili + name = "Cold Chili" + desc = "" //TODO + icon_state = "coldchili" + New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("frostoil", 3) + reagents.add_reagent("tomatojuice", 2) + bitesize = 5 + +/////////////////////////////////////////////////Sliceable//////////////////////////////////////// +// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread + name = "meatbread loaf" + desc = "The culinary base of every self-respecting eloquen/tg/entleman." + icon_state = "meatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 40) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice + name = "meatbread slice" + desc = "A slice of delicious meatbread." + icon_state = "meatbreadslice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread + name = "xenomeatbread loaf" + desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical." + icon_state = "xenomeatbread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("xenomicrobes", 35) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice + name = "xenomeatbread slice" + desc = "A slice of delicious meatbread. Extra Heretical." + icon_state = "xenobreadslice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread + name = "Banana-nut bread" + desc = "A heavenly and filling treat." + icon_state = "tofubread" //TODO: filler sprite till there is a banana bread sprite + slice_path = /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("banana", 20) + reagents.add_reagent("nutriment", 20) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice + name = "Banana-nut bread slice" + desc = "A slice of delicious banana bread." + icon_state = "tofubreadslice" //TODO: Filler sprite + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread + name = "Tofubread" + icon_state = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." + icon_state = "tofubread" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 40) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice + name = "Tofubread slice" + desc = "A slice of delicious tofubread." + icon_state = "tofubreadslice" + bitesize = 2 + + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake + name = "Carrot Cake" + desc = "A favorite desert of a certain wascally wabbit. Not a lie." + icon_state = "carrotcake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 30) + reagents.add_reagent("imidazoline", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice + name = "Carrot Cake slice" + desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie." + icon_state = "carrotcake_slice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake + name = "Cheese Cake" + desc = "DANGEROUSLY cheesy." + icon_state = "cheesecake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 30) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice + name = "Cheese Cake slice" + desc = "Slice of pure cheestisfaction" + icon_state = "cheesecake_slice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake + name = "Vanilla Cake" + desc = "A plain cake, not a lie." + icon_state = "plaincake" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 25) + + +/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice + name = "Vanilla Cake slice" + desc = "Just a slice of cake, it is enough for everyone." + icon_state = "plaincake_slice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel + name = "Cheese wheel" + desc = "A big wheel of delcious Cheddar." + icon_state = "cheesewheel" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesewedge + slices_num = 5 + New() + ..() + reagents.add_reagent("nutriment", 20) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/cheesewedge + name = "Cheese wedge" + desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." + icon_state = "cheesewedge" + bitesize = 2 + + +/////////////////////////////////////////////////PIZZA//////////////////////////////////////// + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza + slices_num = 6 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita + name = "Margherita" + desc = "The most cheezy pizza in galaxy" + icon_state = "pizzamargherita" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/margheritaslice + New() + ..() + reagents.add_reagent("nutriment", 40) + reagents.add_reagent("tomatojuice", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/margheritaslice + name = "Margherita slice" + desc = "A slice of the most cheezy pizza in galaxy" + icon_state = "pizzamargheritaslice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza + name = "Meatpizza" + desc = "" //TODO: + icon_state = "meatpizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice + New() + ..() + reagents.add_reagent("nutriment", 50) + reagents.add_reagent("tomatojuice", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice + name = "Meatpizza slice" + desc = "A slice of " //TODO: + icon_state = "meatpizzaslice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza + name = "Mushroompizza" + desc = "Very special pizza" + icon_state = "mushroompizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice + New() + ..() + reagents.add_reagent("nutriment", 35) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice + name = "Mushroompizza slice" + desc = "Maybe it is the last slice of pizza in your life." + icon_state = "mushroompizzaslice" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza + name = "Vegetable pizza" + desc = "No one of Tomatos Sapiens were harmed during making this pizza" + icon_state = "vegetablepizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice + New() + ..() + reagents.add_reagent("nutriment", 30) + reagents.add_reagent("tomatojuice", 6) + reagents.add_reagent("imidazoline", 12) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice + name = "Vegetable pizza slice" + desc = "A slice of the most green pizza of all pizzas not containing green ingredients " + icon_state = "vegetablepizzaslice" + bitesize = 2 + + diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm new file mode 100644 index 00000000000..f8180528080 --- /dev/null +++ b/code/modules/food/recipes_microwave.dm @@ -0,0 +1,579 @@ + +// see code/datums/recipe.dm + +/datum/recipe/jellydonut + reagents = list("berryjuice" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg + ) + result = /obj/item/weapon/reagent_containers/food/snacks/jellydonut + +/datum/recipe/donut + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donut + +/datum/recipe/human + //invalid recipe + make_food(var/obj/container as obj) + var/human_name + var/human_job + for (var/obj/item/weapon/reagent_containers/food/snacks/meat/human/HM in container) + if (!HM.subjectname) + continue + human_name = HM.subjectname + human_job = HM.subjectjob + break + var/lastname_index = findtext(human_name, " ") + if (lastname_index) + human_name = copytext(human_name,lastname_index+1) + + var/obj/item/weapon/reagent_containers/food/snacks/human/HB = ..(container) + HB.name = human_name+HB.name + HB.job = human_job + return HB + +/datum/recipe/human/burger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat/human + ) + result = /obj/item/weapon/reagent_containers/food/snacks/human/burger + +/* +/datum/recipe/monkeyburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey + ) + result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger +*/ + +/datum/recipe/plainburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/humanburger + ) + result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger + +/datum/recipe/brainburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/brain + ) + result = /obj/item/weapon/reagent_containers/food/snacks/brainburger + +/datum/recipe/roburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/robot_parts/head + ) + result = /obj/item/weapon/reagent_containers/food/snacks/roburger + +/datum/recipe/xenoburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger + +/datum/recipe/fishburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fishburger + +/datum/recipe/tofuburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/tofu + ) + result = /obj/item/weapon/reagent_containers/food/snacks/tofuburger + +/datum/recipe/clownburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/clothing/mask/gas/clown_hat, + /* /obj/item/weapon/reagent_containers/food/snacks/banana, */ + ) + result = /obj/item/weapon/reagent_containers/food/snacks/clownburger + +/datum/recipe/mimeburger + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/clothing/head/beret + ) + result = /obj/item/weapon/reagent_containers/food/snacks/mimeburger + +/datum/recipe/waffles + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/waffles + +/* +/datum/recipe/faggot + monkeymeat_amount = 1 + humanmeat_amount = 1 + creates = "/obj/item/weapon/reagent_containers/food/snacks/faggot" +*/ + +/datum/recipe/donkpocket + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/faggot, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL + proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked) + being_cooked.warm = 1 + being_cooked.reagents.add_reagent("tricordrazine", 5) + being_cooked.bitesize = 6 + being_cooked.name = "Warm " + being_cooked.name + being_cooked.cooltime() + make_food(var/obj/container as obj) + var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container) + warm_up(being_cooked) + return being_cooked + +/datum/recipe/donkpocket/warm + items = list( + /obj/item/weapon/reagent_containers/food/snacks/donkpocket + ) + result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL + make_food(var/obj/container as obj) + var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = locate() in container + if (!being_cooked.warm) + warm_up(being_cooked) + return being_cooked + +/datum/recipe/meatbread + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /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/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread + +/* +/datum/recipe/meatbreadhuman + flour_amount = 3 + humanmeat_amount = 3 + cheese_amount = 3 + creates = "/obj/item/weapon/reagent_containers/food/snacks/meatbread" +*/ + +/datum/recipe/xenomeatbread + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread + +/datum/recipe/bananabread + reagents = list("milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/banana + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread + +/datum/recipe/omelette + items = list( + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/omelette + +/datum/recipe/muffin + reagents = list("milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/flour, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/muffin + +/datum/recipe/eggplantparm + items = list( + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant + ) + result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm + +/datum/recipe/soylenviridians + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians + +/datum/recipe/soylentgreen + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen + +/datum/recipe/carrotcake + reagents = list("milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot //TODO: more carrots + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake + +/datum/recipe/cheesecake + reagents = list("milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake + +/datum/recipe/plaincake + reagents = list("milk" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake + +/datum/recipe/humeatpie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/humeatpie + +/datum/recipe/momeatpie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/momeatpie + +/datum/recipe/tofupie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/tofupie + +/datum/recipe/xemeatpie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/xenomeat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie + +/datum/recipe/pie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/banana + ) + result = /obj/item/weapon/reagent_containers/food/snacks/pie +/* +/datum/recipe/berrypie + reagents = list("berryjuice" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/berrypie +*/ +/datum/recipe/berryclafoutis + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries, + /obj/item/weapon/reagent_containers/food/snacks/grown/berries, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis + +/datum/recipe/wingfangchu + reagents = list("soysauce" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/xenomeat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu + +/datum/recipe/chaosdonut + reagents = list("frostoil" = 5, "capsaicin" = 5, ) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg + ) + result = /obj/item/weapon/reagent_containers/food/snacks/chaosdonut + +/datum/recipe/human/kabob + items = list( + /obj/item/stack/rods, + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + /obj/item/weapon/reagent_containers/food/snacks/meat/human, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/human/kabob + +/datum/recipe/monkeykabob + items = list( + /obj/item/stack/rods, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey, + /obj/item/weapon/reagent_containers/food/snacks/meat/monkey, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob + +/datum/recipe/tofukabob + items = list( + /obj/item/stack/rods, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob + +/datum/recipe/tofubread + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + /obj/item/weapon/reagent_containers/food/snacks/tofu, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread + +/datum/recipe/loadedbakedpotato + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/potato, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato + +/datum/recipe/cheesyfries + items = list( + /obj/item/weapon/reagent_containers/food/snacks/fries, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries + +/datum/recipe/cubancarp + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili, + /obj/item/weapon/reagent_containers/food/snacks/carpmeat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp + +/datum/recipe/popcorn + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/corn + ) + result = /obj/item/weapon/reagent_containers/food/snacks/popcorn + +/datum/recipe/fortunecookie + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/paper, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie + make_food(var/obj/container as obj) + var/obj/item/weapon/paper/paper = locate() in container + paper.loc = null //prevent deletion + var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/being_cooked = ..(container) + paper.loc = being_cooked + return being_cooked + check_items(var/obj/container as obj) + . = ..() + if (.) + var/obj/item/weapon/paper/paper = locate() in container + if (!paper.info) + return 0 + return . + +/datum/recipe/meatstake + reagents = list("sodiumchloride" = 1, "blackpepper" = 1) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/meat + ) + result = /obj/item/weapon/reagent_containers/food/snacks/meatstake + +/datum/recipe/pizzamargherita + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita + +/datum/recipe/meatpizza + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /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/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza + +/datum/recipe/mushroompizza + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza + +/datum/recipe/vegetablepizza + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant, + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza + +/datum/recipe/spacylibertyduff + reagents = list("water" = 10, "vodka" = 5) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff + +/datum/recipe/amanitajelly + reagents = list("water" = 5, "vodka" = 10) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/amanitajelly + make_food(var/obj/container as obj) + var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked = ..(container) + being_cooked.reagents.del_reagent("amatoxin") + return being_cooked +/* +/datum/recipe/poppypretzel + items = list( + /obj/item/weapon/reagent_containers/food/snacks/flour, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/weapon/reagent_containers/food/snacks/egg, + /obj/item/seeds/poppyseed, //poppy seeds are commented out for some reason -- rastaf0 + /obj/item/seeds/poppyseed, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel +*/ + +/datum/recipe/meatballsoup + reagents = list("water" = 20) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/faggot , + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/meatballsoup + +/datum/recipe/vegetablesoup + reagents = list("water" = 20) + items = list( + /obj/item/weapon/reagent_containers/food/snacks/grown/carrot, + /obj/item/weapon/reagent_containers/food/snacks/grown/corn, + /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup + +/datum/recipe/nettlesoup + reagents = list("water" = 20) + items = list( + /obj/item/weapon/grown/nettle, + /obj/item/weapon/reagent_containers/food/snacks/grown/potato, + /obj/item/weapon/reagent_containers/food/snacks/egg, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/nettlesoup + +/datum/recipe/hotchili + items = list( + /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/grown/chili, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/hotchili + +/datum/recipe/coldchili + items = list( + /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/coldchili + diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3437b57beee..f94e7778acf 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1146,6 +1146,7 @@ u_equip(item) if (src.client) src.client.screen -= item + item.loc = null src.update_clothing() return diff --git a/icons/misc/old_or_unused_food.dmi b/icons/misc/old_or_unused_food.dmi new file mode 100644 index 00000000000..01417fc2b99 Binary files /dev/null and b/icons/misc/old_or_unused_food.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 73010f4f80f..eac57b44f19 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 80899402df4..4bef2290fbb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -77,6 +77,7 @@ #define FILE_DIR "code/modules" #define FILE_DIR "code/modules/admin" #define FILE_DIR "code/modules/admin/verbs" +#define FILE_DIR "code/modules/food" #define FILE_DIR "code/modules/mob" #define FILE_DIR "code/modules/mob/dead" #define FILE_DIR "code/modules/mob/dead/observer" @@ -176,6 +177,7 @@ #include "code\datums\mixed.dm" #include "code\datums\modules.dm" #include "code\datums\organs.dm" +#include "code\datums\recipe.dm" #include "code\datums\shuttle_controller.dm" #include "code\datums\spell.dm" #include "code\datums\sun.dm" @@ -621,6 +623,8 @@ #include "code\modules\admin\verbs\striketeam.dm" #include "code\modules\admin\verbs\ticklag.dm" #include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\food\food.dm" +#include "code\modules\food\recipes_microwave.dm" #include "code\modules\mob\login.dm" #include "code\modules\mob\logout.dm" #include "code\modules\mob\mob.dm"