diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 67f471db10..f78b84ed98 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -25,86 +25,65 @@ flags = FPRINT | TABLEPASS | CONDUCT origin_tech = "materials=1" attack_verb = list("attacked", "stabbed", "poked") + sharp = 0 + + var/loaded //Descriptive string for currently loaded food object. /obj/item/weapon/kitchen/utensil/New() if (prob(60)) src.pixel_y = rand(0, 4) return -/* - * Spoons - */ -/obj/item/weapon/kitchen/utensil/spoon - name = "spoon" - desc = "SPOON!" - icon_state = "spoon" - attack_verb = list("attacked", "poked") + create_reagents(5) -/obj/item/weapon/kitchen/utensil/pspoon - name = "plastic spoon" - desc = "Super dull action!" - icon_state = "pspoon" - attack_verb = list("attacked", "poked") - -/* - * Forks - */ -/obj/item/weapon/kitchen/utensil/fork - name = "fork" - desc = "Pointy." - icon_state = "fork" - sharp = 1 - -/obj/item/weapon/kitchen/utensil/fork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) +/obj/item/weapon/kitchen/utensil/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M)) return ..() - if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head") - return ..() + if(user.a_intent != "help") + if(user.zone_sel.selecting == "head" || user.zone_sel.selecting == "eyes") + if((CLUMSY in user.mutations) && prob(50)) + M = user + return eyestab(M,user) + else + return ..() - if (src.icon_state == "forkloaded") //This is a poor way of handling it, but a proper rewrite of the fork to allow for a more varied foodening can happen when I'm in the mood. --NEO + if (reagents.total_volume > 0) + reagents.trans_to_ingest(M, reagents.total_volume) if(M == user) for(var/mob/O in viewers(M, null)) - O.show_message(text("\blue [] eats a delicious forkful of omelette!", user), 1) + O.show_message(text("\blue [] eats some [] from \the [].", user, loaded, src), 1) M.reagents.add_reagent("nutriment", 1) else for(var/mob/O in viewers(M, null)) - O.show_message(text("\blue [] feeds [] a delicious forkful of omelette!", user, M), 1) + O.show_message(text("\blue [] feeds [] some [] from \the []", user, M, loaded, src), 1) M.reagents.add_reagent("nutriment", 1) - src.icon_state = "fork" + + overlays.Cut() return - else - if((CLUMSY in user.mutations) && prob(50)) - M = user - return eyestab(M,user) + +/obj/item/weapon/kitchen/utensil/fork + name = "fork" + desc = "It's a fork. Sure is pointy." + icon_state = "fork" + sharp = 1 /obj/item/weapon/kitchen/utensil/pfork name = "plastic fork" desc = "Yay, no washing up to do." icon_state = "pfork" -/obj/item/weapon/kitchen/utensil/pfork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!istype(M)) - return ..() +/obj/item/weapon/kitchen/utensil/spoon + name = "spoon" + desc = "It's a spoon. You can see your own upside-down face in it." + icon_state = "spoon" + attack_verb = list("attacked", "poked") - if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head") - return ..() - - if (src.icon_state == "forkloaded") //This is a poor way of handling it, but a proper rewrite of the fork to allow for a more varied foodening can happen when I'm in the mood. --NEO - if(M == user) - for(var/mob/O in viewers(M, null)) - O.show_message(text("\blue [] eats a delicious forkful of omelette!", user), 1) - M.reagents.add_reagent("nutriment", 1) - else - for(var/mob/O in viewers(M, null)) - O.show_message(text("\blue [] feeds [] a delicious forkful of omelette!", user, M), 1) - M.reagents.add_reagent("nutriment", 1) - src.icon_state = "fork" - return - else - if((CLUMSY in user.mutations) && prob(50)) - M = user - return eyestab(M,user) +/obj/item/weapon/kitchen/utensil/pspoon + name = "plastic spoon" + desc = "It's a plastic spoon. How dull." + icon_state = "pspoon" + attack_verb = list("attacked", "poked") /* * Knives @@ -477,49 +456,4 @@ for(var/i = 1, i <= rand(1,2), i++) if(I) step(I, pick(NORTH,SOUTH,EAST,WEST)) - sleep(rand(2,4)) - - - - - -///////////////////////////////////////////////////////////////////////////////////////// -//Enough with the violent stuff, here's what happens if you try putting food on it -///////////////////////////////////////////////////////////////////////////////////////////// - - - -/*/obj/item/weapon/tray/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 = 'icons/obj/kitchen.dmi' - W.icon_state = "forkloaded" - viewers(3,user) << "[user] takes a piece of omelette with his fork!" - reagents.remove_reagent("nutriment", 1) - if (reagents.total_volume <= 0) - del(src)*/ - - -/* if (prob(33)) - var/turf/location = H.loc - if (istype(location, /turf/simulated)) - location.add_blood(H) - if (H.wear_mask) - H.wear_mask.add_blood(H) - if (H.head) - H.head.add_blood(H) - if (H.glasses && prob(33)) - H.glasses.add_blood(H) - if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/user2 = user - if (user2.gloves) - user2.gloves.add_blood(H) - else - user2.add_blood(H) - if (prob(15)) - if (user2.wear_suit) - user2.wear_suit.add_blood(H) - else if (user2.w_uniform) - user2.w_uniform.add_blood(H)*/ \ No newline at end of file + sleep(rand(2,4)) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 9cc0e22dfc..51abb2769f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -243,7 +243,7 @@ msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" if(!key && brain_op_stage != 4 && stat != DEAD) - msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely\n" + msg += "[t_He] [t_is] fast asleep. It doesn't look like they are waking up anytime soon.\n" else if(!client && brain_op_stage != 4 && stat != DEAD) msg += "[t_He] [t_has] suddenly fallen asleep.\n" @@ -262,7 +262,7 @@ wound_flavor_text["[temp.display_name]"] = "[t_He] has a robot [temp.display_name]!\n" continue else - wound_flavor_text["[temp.display_name]"] = "[t_He] has a robot [temp.display_name], it has" + wound_flavor_text["[temp.display_name]"] = "[t_He] has a robot [temp.display_name]. It has" if(temp.brute_dam) switch(temp.brute_dam) if(0 to 20) wound_flavor_text["[temp.display_name]"] += " some dents" @@ -389,7 +389,7 @@ msg += "[src] has blood running from under [t_his] gloves!\n" for(var/implant in get_visible_implants(1)) - msg += "[src] has \a [implant] sticking out of their flesh!\n" + msg += "[src] has \a [implant] sticking out of [t_his] flesh!\n" if(digitalcamo) msg += "[t_He] [t_is] repulsively uncanny!\n" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index da91085e27..da04f2d30f 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -127,8 +127,39 @@ ..() // -> item/attackby() if(istype(W,/obj/item/weapon/storage)) ..() // -> item/attackby() + + if(istype(W,/obj/item/weapon/kitchen/utensil)) + + var/obj/item/weapon/kitchen/utensil/U = W + + if(!U.reagents) + U.create_reagents(5) + + if (U.reagents.total_volume > 0) + user << "\red You already have something on your [U]." + return + + user.visible_message( \ + "[user] scoops up some [src] with \the [U]!", \ + "\blue You scoop up some [src] with \the [U]!" \ + ) + + src.bitecount++ + U.overlays.Cut() + U.loaded = "[src]" + var/image/I = new(U.icon, "loadedfood") + I.color = src.filling_color + U.overlays += I + + reagents.trans_to(U,min(reagents.total_volume,5)) + + if (reagents.total_volume <= 0) + del(src) + return + if((slices_num <= 0 || !slices_num) || !slice_path) return 0 + var/inaccurate = 0 if( \ istype(W, /obj/item/weapon/kitchenknife) || \ @@ -173,8 +204,8 @@ ) else user.visible_message( \ - "\blue [user] inaccurately slices \the [src] with [W]!", \ - "\blue You inaccurately slice \the [src] with your [W]!" \ + "\blue [user] crudely slices \the [src] with [W]!", \ + "\blue You crudely 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 @@ -182,6 +213,7 @@ var/obj/slice = new slice_path (src.loc) reagents.trans_to(slice,reagents_per_slice) del(src) + return /obj/item/weapon/reagent_containers/food/snacks/Del() @@ -876,33 +908,6 @@ ..() reagents.add_reagent("nutriment", 8) 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 = 'icons/obj/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" diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 9cccbfeb83..7c1bce89fb 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ