[MIRROR] Trash Eater Signals (#12006)

Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-11-21 01:46:53 -07:00
committed by GitHub
parent 6a7957f2c0
commit 02ca094417
4 changed files with 117 additions and 11 deletions

View File

@@ -1,6 +1,13 @@
// checks for when items are consumed by trash/ore eater
/obj/item/proc/on_trash_eaten(var/mob/living/user)
SHOULD_CALL_PARENT(TRUE)
var/signal_results = SEND_SIGNAL(src, COMSIG_ITEM_TRASH_EATEN, user) | SEND_SIGNAL(user, COMSIG_MOB_TRASH_EATING, src)
if(signal_results & COMSIG_ITEM_TRASH_EAT_DENY) // A component attached to the item or the mob said we cannot eat this
return FALSE
if(signal_results & COMSIG_ITEM_TRASH_EAT_FORCED) // Ignore everything including blacklist, prefs and adminbus. Component is handling the rules.
return TRUE
if(is_type_in_list(src, GLOB.item_vore_blacklist) && !user.adminbus_trash) //If someone has adminbus, they can eat whatever they want.
to_chat(user, span_warning("You are not allowed to eat this."))
return FALSE
@@ -11,10 +18,22 @@
to_chat(user, span_warning("You really should not be eating this."))
message_admins("[key_name(user)] has attempted to ingest an uplink item. ([user ? ADMIN_JMP(user) : "null"])")
return FALSE
return TRUE
/obj/item/proc/after_trash_eaten(var/mob/living/user) // Override for post-swallow messages
to_chat(src, span_notice("You can taste the flavor of garbage. Delicious."))
/// Override this for post-swallow messages. Returns true if components on mob or item allow trash eating messages
/obj/proc/after_trash_eaten(var/mob/living/user)
SHOULD_CALL_PARENT(TRUE)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ITEM_TRASH_EATEN, src, user)
var/signal_results = SEND_SIGNAL(src, COMSIG_ITEM_AFTER_TRASH_EAT, user) | SEND_SIGNAL(user, COMSIG_MOB_AFTER_TRASH_EATING, src)
if(signal_results & COMSIG_ITEM_AFTER_TRASH_EAT_HIDE_MESSAGE)
return FALSE // Deny messages
return TRUE
/obj/item/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of garbage. Delicious."))
// PAI
/obj/item/paicard/on_trash_eaten(var/mob/living/user)
@@ -27,6 +46,8 @@
return TRUE
/obj/item/paicard/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the sweet flavor of digital friendship."))
if(pai && pai.client && isbelly(loc))
var/obj/belly/B = loc
@@ -42,6 +63,8 @@
return TRUE
/obj/item/book/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the dry flavor of knowledge."))
// PDA
@@ -68,6 +91,8 @@
return TRUE
/obj/item/pda/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the sweet flavor of delicious technology."))
// ID
@@ -91,6 +116,8 @@
return TRUE
/obj/item/card/id/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the delicious flavour of a person's whole identity."))
// Shoes
@@ -112,79 +139,123 @@
return TRUE
/obj/item/capture_crystal/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
if(bound_mob && (bound_mob in contents))
if(isbelly(loc))
to_chat(user, span_notice("You can taste the the power of command."))
// Most trash has no special check, so the rest of these are just after_trash_eaten()
/obj/item/flashlight/flare/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of spicy cardboard."))
/obj/item/flame/match/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of spicy cardboard."))
/obj/item/storage/box/matches/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of spicy cardboard."))
/obj/item/flashlight/glowstick/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You found out the glowy juice only tastes like regret."))
/obj/item/trash/cigbutt/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of bitter ash. Classy."))
/obj/item/clothing/mask/smokable/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
if(lit)
to_chat(user, span_notice("You can taste the flavor of burning ash. Spicy!"))
else
to_chat(user, span_notice("You can taste the flavor of aromatic rolling paper and funny looks."))
/obj/item/paper/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the dry flavor of bureaucracy."))
/obj/item/dice/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the bitter flavor of cheating."))
/obj/item/roulette_ball/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the bitter flavor of cheating."))
/obj/item/lipstick/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of couture and style. Toddler at the make-up bag style."))
/obj/item/soap/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the bitter flavor of verbal purification."))
/obj/item/spacecash/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of wealth and reckless waste."))
/obj/item/storage/wallet/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of wealth and reckless waste."))
/obj/item/broken_bottle/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of pain. This can't possibly be healthy for your guts."))
/obj/item/material/shard/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the flavor of pain. This can't possibly be healthy for your guts."))
/obj/item/light/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
if(status == LIGHT_BROKEN)
to_chat(user, span_notice("You can taste the flavor of pain. This can't possibly be healthy for your guts."))
else
to_chat(user, span_notice("You can taste the flavor of really bad ideas."))
/obj/item/bikehorn/tinytether/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You feel a rush of power swallowing such a large, err, tiny structure."))
/obj/item/mmi/digital/posibrain/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the sweet flavor of digital friendship. Or maybe it is something else."))
/obj/item/aicard/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the sweet flavor of digital friendship. Or maybe it is something else."))
/obj/item/reagent_containers/food/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
if(!reagents?.total_volume)
to_chat(user, span_notice("You can taste the flavor of garbage and leftovers. Delicious?"))
else
to_chat(user, span_notice("You can taste the flavor of gluttonous waste of food."))
/obj/item/clothing/accessory/collar/after_trash_eaten(var/mob/living/user)
if(!..(user))
return
to_chat(user, span_notice("You can taste the submissiveness in the wearer of [src]!"))