diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 905966009dd..4737c9b89f4 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -423,6 +423,13 @@ emp_act if(istype(AM,/obj/)) var/obj/O = AM + if(stat != DEAD && istype(O,/obj/item) && trash_catching && vore_selected) //Ported from chompstation + var/obj/item/I = O + if(adminbus_trash || is_type_in_list(I,edible_trash) && I.trash_eatable && !is_type_in_list(I,item_vore_blacklist)) + visible_message("[I] is thrown directly into [src]'s [lowertext(vore_selected.name)]!") + I.throwing = 0 + I.forceMove(vore_selected) + return if(in_throw_mode && speed <= THROWFORCE_SPEED_DIVISOR) //empty active hand and we're in throw mode if(canmove && !restrained()) if(isturf(O.loc)) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 695a6dfd199..9cc1c53f2ea 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -199,6 +199,7 @@ /datum/trait/neutral/trashcan/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() H.verbs |= /mob/living/proc/eat_trash + H.verbs |= /mob/living/proc/toggle_trash_catching //Ported from chompstation /datum/trait/neutral/gem_eater name = "Expensive Taste" diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a686d4501ee..1429a172a30 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -257,6 +257,13 @@ /mob/living/hitby(atom/movable/AM as mob|obj,var/speed = THROWFORCE_SPEED_DIVISOR)//Standardization and logging -Sieve if(istype(AM,/obj/)) var/obj/O = AM + if(stat != DEAD && istype(O,/obj/item) && trash_catching && vore_selected) //ported from chompstation + var/obj/item/I = O + if(adminbus_trash || is_type_in_list(I,edible_trash) && I.trash_eatable && !is_type_in_list(I,item_vore_blacklist)) + visible_message("[I] is thrown directly into [src]'s [lowertext(vore_selected.name)]!") + I.throwing = 0 + I.forceMove(vore_selected) + return var/dtype = O.damtype var/throw_damage = O.throwforce*(speed/THROWFORCE_SPEED_DIVISOR) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index b9593edb636..d8272c486f9 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -33,6 +33,7 @@ 'sound/effects/mob_effects/xenochimera/regen_3.ogg', 'sound/effects/mob_effects/xenochimera/regen_5.ogg' ) + var/trash_catching = FALSE //Toggle for trash throw vore from chompstation // // Hook for generic creation of stuff on new creatures @@ -867,6 +868,13 @@ to_chat(src, "This item is not appropriate for ethical consumption.") return +/mob/living/proc/toggle_trash_catching() //Ported from chompstation + set name = "Toggle Trash Catching" + set category = "Abilities" + set desc = "Toggle Trash Eater throw vore abilities." + trash_catching = !trash_catching + to_chat(src, "Trash catching [trash_catching ? "enabled" : "disabled"].") + /mob/living/proc/eat_minerals() //Actual eating abstracted so the user isn't given a prompt due to an argument in this verb. set name = "Eat Minerals" set category = "Abilities"