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