diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index c6206294e7b..1a9586b7449 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -440,6 +440,18 @@ user << "You wet [O] in [src]." playsound(loc, 'sound/effects/slosh.ogg', 25, 1) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) + var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = O + if(M.wrapped) + user << "You need to unwrap [src] first!" + return + else + user << "You place [src] under a stream of water..." + user.drop_item() + M.loc = get_turf(src) + M.Expand() + return + var/obj/item/I = O if(!I || !istype(I)) return @@ -456,7 +468,6 @@ user.visible_message("[user] washes [I] using [src].", \ "You wash [I] using [src].") - /obj/structure/sink/kitchen name = "kitchen sink" icon_state = "sink_alt" diff --git a/code/modules/food&drinks/food/snacks_meat.dm b/code/modules/food&drinks/food/snacks_meat.dm index 621bc15d0b6..5000e581448 100644 --- a/code/modules/food&drinks/food/snacks_meat.dm +++ b/code/modules/food&drinks/food/snacks_meat.dm @@ -133,25 +133,6 @@ list_reagents = list("nutriment" = 2) filling_color = "#CD853F" -/obj/item/weapon/reagent_containers/food/snacks/monkeycube/afterattack(obj/O, mob/user,proximity) - if(!proximity) return - if(istype(O,/obj/structure/sink)) - if (wrapped) - user << "You need to unwrap [src] first!" - return - else - user << "You place [src] under a stream of water..." - user.drop_item() - loc = get_turf(O) - return Expand() - if(istype(O, /obj/machinery/computer/camera_advanced/xenobio)) - var/obj/machinery/computer/camera_advanced/xenobio/X = O - X.monkeys++ - user << "You feed [src] to the [X]. It now has [X.monkeys] monkey cubes stored." - qdel(src) - return - ..() - /obj/item/weapon/reagent_containers/food/snacks/monkeycube/attack_self(mob/user) if(wrapped) Unwrap(user) diff --git a/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm b/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm index ebf6296f446..47a8d236b6f 100644 --- a/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm +++ b/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm @@ -58,29 +58,40 @@ var/grabbed = G.affecting if(ismonkey(grabbed)) var/mob/living/carbon/monkey/target = grabbed - if(target.stat == 0) - user << "The monkey is struggling far too much to put it in the recycler." - return - if(target.buckled || target.buckled_mobs.len) - user << "The monkey is attached to something." - return - if(!user.drop_item()) - return - qdel(target) - user << "You stuff the monkey into the machine." - playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) - var/offset = prob(50) ? -2 : 2 - animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking - use_power(500) - grinded++ - sleep(50) - pixel_x = initial(pixel_x) //return to its spot after shaking - user << "The machine now has [grinded] monkey\s worth of material stored." - + stuff_monkey_in(target, user) + user.drop_item() + return else user << "The machine only accepts monkeys!" return +/obj/machinery/monkey_recycler/MouseDrop_T(mob/living/target, mob/living/user) + if(!istype(target)) + return + if(ismonkey(target)) + stuff_monkey_in(target, user) + +/obj/machinery/monkey_recycler/proc/stuff_monkey_in(mob/living/carbon/monkey/target, mob/living/user) + if(!istype(target)) + return + if(target.stat == 0) + user << "The monkey is struggling far too much to put it in the recycler." + return + if(target.buckled || target.buckled_mobs.len) + user << "The monkey is attached to something." + return + qdel(target) + user << "You stuff the monkey into the machine." + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking + use_power(500) + grinded++ + sleep(50) + pixel_x = initial(pixel_x) //return to its spot after shaking + user << "The machine now has [grinded] monkey\s worth of material stored." + + /obj/machinery/monkey_recycler/attack_hand(mob/user) if (src.stat != 0) //NOPOWER etc return diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index fb75418c3c2..d71557e4518 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -306,7 +306,7 @@ update() return - if(!user.drop_item()) + if(!user.drop_item() || I.flags & ABSTRACT) // Dunno why this wasn't here before? return I.loc = src diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index dbc201fab83..4d85e3c9d5c 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -62,6 +62,15 @@ return return ..() +/obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) + monkeys++ + user << "You feed [O] to the [src]. It now has [monkeys] monkey cubes stored." + user.drop_item() + qdel(O) + return + + /datum/action/innate/camera_off/xenobio/Activate() if(!target || !ishuman(target)) return