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].")