diff --git a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
index 381525a13ae..ea54e8984ad 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
@@ -41,6 +41,8 @@
return 0
if(istype(check, /obj/item/weapon/reagent_containers/food/snacks))
return 1
+ if(istype(check, /obj/item/weapon/grab))
+ return 0
to_chat(user, "You can only process food!")
return 0
@@ -111,6 +113,32 @@
to_chat(user, "Close the panel first!")
return
if(!checkValid(I, user))
+ if(istype(I, /obj/item/weapon/grab))
+ var/obj/item/weapon/grab/G = I
+ if(!iscarbon(G.affecting))
+ to_chat(user, "You can only harm carbon-based creatures this way!")
+ return
+// if(G.affecting.stat == DEAD)
+// to_chat(user, "[G.affecting] is dead!")
+// return
+ if(G.state < GRAB_AGGRESSIVE)
+ to_chat(user, "You need a better grip to do that!")
+ return
+ var/mob/living/carbon/human/C = G.affecting
+ var/obj/item/organ/external/head/head = C.get_organ("head")
+ if(!head)
+ to_chat(user, "This person doesn't have a head!")
+ return
+ if(istype(src, /obj/machinery/cooker/deepfryer))
+ C.visible_message("[user] dunks [C]'s face into [src]!", \
+ "[user] dunks your face into [src]!")
+ if(!C.stat)
+ C.emote("scream")
+ user.changeNext_move(CLICK_CD_MELEE)
+ C.apply_damage(25, BURN, "head") //25 fire damage and disfigurement because your face was just deep fried!
+ head.disfigure("burn")
+ add_logs(G.assailant, G.affecting, "deep-fried face")
+ qdel(I) //Removes the grip so the person MIGHT have a small chance to run the fuck away and to prevent rapid dunks.
return
if(!burns)
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks))
diff --git a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
index a69b0a718ef..a2bcc66bbfe 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
@@ -156,7 +156,54 @@
//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
- to_chat(user, "This is ridiculous. You can not fit \the [G.affecting] in this [src].")
+ if(!istype(src, /obj/machinery/kitchen_machine/oven) && !istype(src, /obj/machinery/kitchen_machine/grill))
+ to_chat(user, "This is ridiculous. You can not fit \the [G.affecting] in this [src].")
+ return 1
+ if(!iscarbon(G.affecting))
+ to_chat(user, "You can only harm carbon-based creatures this way!")
+ return 1
+// if(G.affecting.stat == DEAD)
+// to_chat(user, "[G.affecting] is dead!")
+// return 1
+ if(G.state < GRAB_AGGRESSIVE)
+ to_chat(user, "You need a better grip to do that!")
+ return 1
+ var/mob/living/carbon/human/C = G.affecting
+ var/obj/item/organ/external/head/head = C.get_organ("head")
+ if(!head)
+ to_chat(user, "This person doesn't have a head!")
+ return 1
+ if(istype(src, /obj/machinery/kitchen_machine/oven))
+ if(G.state < GRAB_AGGRESSIVE)
+ to_chat(user, "You need a better grip to do that!")
+ return 1
+ C.visible_message("[user] bashes [C]'s head in [src]'s door!", \
+ "[user] bashes your head in [src]'s door! It feels rather hot in the oven!")
+ if(!C.stat)
+ C.emote("scream")
+ user.changeNext_move(CLICK_CD_MELEE)
+ C.apply_damage(5, BURN, "head") //5 fire damage, 15 brute damage, and weakening because your head was just in a hot oven with the door bashing into your neck!
+ C.apply_damage(15, BRUTE, "head")
+ C.Weaken(2)
+ add_logs(G.assailant, G.affecting, "head smashed in oven")
+ qdel(O) //Removes the grip to prevent rapid bashes. With the weaken, you PROBABLY can't run unless they are slow to grab you again...
+ return 1
+ if(istype(src, /obj/machinery/kitchen_machine/grill))
+ if(G.state < GRAB_AGGRESSIVE)
+ to_chat(user, "You need a better grip to do that!")
+ return 1
+ C.visible_message("[user] forces [C] onto [src], searing [C]'s upper body!", \
+ "[user] forces you onto [src]! It burns!")
+ if(!C.stat)
+ C.emote("scream")
+ user.changeNext_move(CLICK_CD_MELEE)
+ C.apply_damage(10, BURN, "head") //30 overall upper body damage because your body was just placed over a hot grill!
+ C.apply_damage(10, BURN, "chest")
+ C.apply_damage(5, BURN, "l_arm")
+ C.apply_damage(5, BURN, "r_arm")
+ add_logs(G.assailant, G.affecting, "burns on a grill")
+ qdel(O) //Removes the grip to prevent rapid sears and give you a chance to run
+ return 1
return 1
else
to_chat(user, "You have no idea what you can cook with this [O].")