From aeafc2ffa5882b885e33322bcd6099242e8ca21a Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Sun, 12 Feb 2012 07:07:16 -0500 Subject: [PATCH] can eat all foods with fork like a sane person now --- code/defines/obj/weapon.dm | 1 + code/game/objects/items/weapons/kitchen.dm | 83 ++++++++++++++++------ code/modules/food/food.dm | 27 ------- 3 files changed, 64 insertions(+), 47 deletions(-) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index b8a3690adb1..91f008508fe 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1257,6 +1257,7 @@ name = "fork" desc = "Pointy." icon_state = "fork" + var/obj/item/weapon/reagent_containers/food/snacks/bite /obj/item/weapon/kitchen/utensil/knife name = "knife" diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 6866fae1a6e..17915b82ef9 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -18,28 +18,71 @@ KNIFE // FORK -/obj/item/weapon/kitchen/utensil/fork/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 (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) +/obj/item/weapon/kitchen/utensil/fork/attack(mob/living/M as mob, mob/living/carbon/user as mob) + if(istype(M,/mob/living/carbon) || istype(M,/mob/living/simple_animal/livestock)) + if (bite) + if(M == user) + user.visible_message( \ + "\blue [user] eats a delicious forkful of [bite]!", \ + "\blue You eat a delicious forkful of [bite]!") + else + user.visible_message( \ + "\blue [user] feeds [M] a delicious forkful of [bite]!", \ + "\blue You feed [M] a delicious forkful of [bite]!") + spawn(0) + bite.reagents.reaction(M, INGEST) + bite.reagents.trans_to(M) + del(bite) + src.icon_state = "fork" + else if(user.zone_sel.selecting == "eyes") + if((user.mutations & CLUMSY) && prob(50)) + M = user + return eyestab(M, user) 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 + user << "\red Your fork does not have any food on it." else - if((user.mutations & CLUMSY) && prob(50)) - M = user - return eyestab(M,user) + user << "\red You can't seem to feed [M]." + +/obj/item/weapon/kitchen/utensil/fork/afterattack(obj/item/weapon/reagent_containers/food/snacks/snack as obj, mob/living/carbon/user as mob) + if(istype(snack)) + if(bite) + user << "\red You already have [bite] on your fork." + else + bite = new snack.type(src) + icon_state = "forkloaded" + user.visible_message( \ + "[user] takes a piece of [bite] with their fork!", \ + "\blue You take a piece of [bite] with your fork!" \ + ) + if(bite.reagents && snack.reagents) //transfer bit's worth of reagents to + bite.reagents.clear_reagents() + if(snack.reagents.total_volume) + snack.reagents.reaction(src, TOUCH) // react "food" with fork + spawn(0) + if(snack.reagents.total_volume > snack.bitesize) + snack.reagents.trans_to(bite, snack.bitesize) + else + snack.reagents.trans_to(bite, snack.reagents.total_volume) + snack.bitecount++ + if(!snack.reagents.total_volume) + // due to the trash code being hard-coded to place in hand, do magic trick + // free active hand + user.drop_item(src) + + // consumption fills active hand, drop it back down + snack.On_Consume() + var/obj/trash = user.get_active_hand() + if(trash) + user.drop_item(trash) + trash.loc = get_turf(snack.loc) // move trash to snack's turf + + // put fork back in hand + user.put_in_hand(src) + user << "\red You grab the last bite of [snack]." + del(snack) + else + return ..() + diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm index f4c354d07d0..13eb9a4f94b 100644 --- a/code/modules/food/food.dm +++ b/code/modules/food/food.dm @@ -453,33 +453,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 = '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"