diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 90c93aba8f..f54d8d6b18 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -123,6 +123,42 @@ var/global/list/tf_egg_types = list( "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph) +var/global/list/edible_trash = list(/obj/item/trash, + /obj/item/device/flashlight, + /obj/item/toy/figure, + /obj/item/weapon/cigbutt, + /obj/item/weapon/bananapeel, + /obj/item/stack/material/cardboard, + /obj/item/weapon/light, + /obj/item/weapon/paper, + /obj/item/weapon/broken_bottle, + /obj/item/weapon/reagent_containers/food, + /obj/item/inflatable/torn, + /obj/item/weapon/flame/match, + /obj/item/clothing/mask/smokable, + /obj/item/weapon/storage/wallet, + /obj/item/weapon/spacecash, + /obj/item/broken_device, + /obj/item/weapon/corncob, + /obj/item/weapon/paperplane, + /obj/item/weapon/pen, + /obj/item/weapon/photo, + /obj/item/weapon/storage/box/wings, + /obj/item/weapon/storage/box/matches, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/fancy/egg_box, + /obj/item/weapon/storage/fancy/candle_box, + /obj/item/weapon/storage/fancy/crayons, + /obj/item/weapon/dice, + /obj/item/weapon/newspaper, + /obj/item/weapon/reagent_containers/glass/rag, + /obj/item/weapon/lipstick, + /obj/item/weapon/soap, + /obj/item/weapon/material/shard, + /obj/item/device/paicard, + /obj/item/device/mmi/digital/posibrain, + /obj/item/device/aicard) + /hook/startup/proc/init_vore_datum_ref_lists() var/paths diff --git a/code/game/objects/items/trash_vr.dm b/code/game/objects/items/trash_vr.dm index 58f8e23967..38c434b973 100644 --- a/code/game/objects/items/trash_vr.dm +++ b/code/game/objects/items/trash_vr.dm @@ -14,7 +14,7 @@ user.drop_item() var/belly = H.vore_selected var/datum/belly/selected = H.vore_organs[belly] - src.forceMove(H) + forceMove(H) selected.internal_contents |= src to_chat(H, "You can taste the flavor of garbage. Wait what?") return @@ -26,8 +26,8 @@ user.drop_item() var/belly = R.vore_selected var/datum/belly/selected = R.vore_organs[belly] - src.forceMove(R) + forceMove(R) selected.internal_contents |= src // Too many hoops and obstacles to stick it into the sleeper module. R.visible_message("[user] feeds [R] with [src]!") return - ..() + ..() \ No newline at end of file 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 ee849fb721..7349bafa02 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 @@ -91,10 +91,14 @@ /datum/trait/trashcan name = "Trash Can" - desc = "Allows you to dispose of the snack wrappings on the go instead of having to look for a bin or littering like an animal." + desc = "Allows you to dispose of some garbage on the go instead of having to look for a bin or littering like an animal." cost = 0 var_changes = list("trashcan" = 1) +/datum/trait/trashcan/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/proc/eat_trash + /datum/trait/glowing_eyes name = "Glowing Eyes" desc = "Your eyes show up above darkness. SPOOKY! And kinda edgey too." diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index c2bd6e0bf4..df86b24c00 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -270,6 +270,10 @@ return 0 else if(istype(card.loc,/mob)) var/mob/holder = card.loc + var/datum/belly/inside_belly = check_belly(card) //VOREStation edit. + if(inside_belly) //VOREStation edit. + to_chat(src, "There is no room to unfold in here. You're good and stuck.") //VOREStation edit. + return 0 //VOREStation edit. if(ishuman(holder)) var/mob/living/carbon/human/H = holder for(var/obj/item/organ/external/affecting in H.organs) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index c999b7b88b..a6ec760ffa 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -587,3 +587,66 @@ var/new_color = input(src,"Select a new color","Body Glow",glow_color) as color if(new_color) glow_color = new_color + +/mob/living/proc/eat_trash() + set name = "Eat Trash" + set category = "Abilities" + set desc = "Consume held garbage." + + var/obj/item/I = get_active_hand() + if(!I) + to_chat(src, "You are not holding anything.") + return + if(is_type_in_list(I,edible_trash)) + playsound(src.loc,'sound/vore/gulp.ogg', 20, 1) + drop_item() + var/belly = vore_selected + var/datum/belly/selected = vore_organs[belly] + I.forceMove(src) + selected.internal_contents |= I + if(istype(I,/obj/item/device/flashlight/flare) || istype(I,/obj/item/weapon/flame/match) || istype(I,/obj/item/weapon/storage/box/matches)) + to_chat(src, "You can taste the flavor of spicy cardboard.") + else if(istype(I,/obj/item/device/flashlight/glowstick)) + to_chat(src, "You found out the glowy juice only tastes like regret.") + else if(istype(I,/obj/item/weapon/cigbutt)) + to_chat(src, "You can taste the flavor of bitter ash. Classy.") + else if(istype(I,/obj/item/clothing/mask/smokable)) + var/obj/item/clothing/mask/smokable/C = I + if(C.lit) + to_chat(src, "You can taste the flavor of burning ash. Spicy!") + else + to_chat(src, "You can taste the flavor of aromatic rolling paper and funny looks.") + else if(istype(I,/obj/item/weapon/paper)) + to_chat(src, "You can taste the dry flavor of bureaucracy.") + else if(istype(I,/obj/item/weapon/dice)) + to_chat(src, "You can taste the bitter flavor of cheating.") + else if(istype(I,/obj/item/weapon/lipstick)) + to_chat(src, "You can taste the flavor of couture and style. Toddler at the make-up bag style.") + else if(istype(I,/obj/item/weapon/soap)) + to_chat(src, "You can taste the bitter flavor of verbal purification.") + else if(istype(I,/obj/item/weapon/spacecash) || istype(I,/obj/item/weapon/storage/wallet)) + to_chat(src, "You can taste the flavor of wealth and reckless waste.") + else if(istype(I,/obj/item/weapon/broken_bottle) || istype(I,/obj/item/weapon/material/shard)) + to_chat(src, "You can taste the flavor of pain. This can't possibly be healthy for your guts.") + else if(istype(I,/obj/item/weapon/light)) + var/obj/item/weapon/light/L = I + if(L.status == LIGHT_BROKEN) + to_chat(src, "You can taste the flavor of pain. This can't possibly be healthy for your guts.") + else + to_chat(src, "You can taste the flavor of really bad ideas.") + else if(istype(I,/obj/item/toy/figure)) + visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!") + else if(istype(I,/obj/item/device/paicard) || istype(I,/obj/item/device/mmi/digital/posibrain) || istype(I,/obj/item/device/aicard)) + visible_message("[src] demonstrates their voracious capabilities by swallowing [I] whole!") + to_chat(src, "You can taste the sweet flavor of digital friendship. Or maybe it is something else.") + else if(istype(I,/obj/item/weapon/reagent_containers/food)) + var/obj/item/weapon/reagent_containers/food/F = I + if(!F.reagents.total_volume) + to_chat(src, "You can taste the flavor of garbage and leftovers. Delicious?") + else + to_chat(src, "You can taste the flavor of gluttonous waste of food.") + else + to_chat(src, "You can taste the flavor of garbage. Delicious.") + return + to_chat(src, "This item is not appropriate for ethical consumption.") + return \ No newline at end of file