cleaning things up

This commit is contained in:
Metis
2024-10-16 11:04:51 -04:00
parent 209bd24bbb
commit 5072c705a5
4 changed files with 222 additions and 27 deletions
@@ -14,4 +14,5 @@
)
result = /obj/structure/disposaloutlet/industrial_feeding_tube
tools = list(TOOL_WELDER, TOOL_WRENCH, TOOL_SCREWDRIVER)
category = CAT_MISC
subcategory = CAT_MISCELLANEOUS
category = CAT_MISCELLANEOUS
@@ -1,6 +1,6 @@
/**
* Contains:
* Industrial Feeding Tube
* Industrial Feeding Tube
*/
/obj/structure/disposaloutlet/industrial_feeding_tube
@@ -13,7 +13,7 @@
/// Is it welded down?
var/welded = FALSE
/// Who the tube is attached to
var/mob/living/attached
var/mob/living/attached
/// Where the tube tries to dump it's stuff into
var/output_dest
/// It's Glogged !
@@ -54,12 +54,12 @@
new /obj/item/stack/sheet/plastic(loc, 5)
new /obj/item/pipe/binary(loc, PIPE_STRAIGHT, NORTH)
new /obj/item/pipe/binary(loc, PIPE_STRAIGHT, NORTH)
if(contents) //Anything still glogged inside...
for(var/atom/movable/AM in src)
AM.forceMove(loc)
qdel(src)
/obj/structure/disposaloutlet/industrial_feeding_tube/Destroy()
if(attached)
attached = null
@@ -73,7 +73,7 @@
AM.forceMove(loc)
continue
qdel(AM)
return ..()
/obj/structure/disposaloutlet/industrial_feeding_tube/MouseDrop(mob/living/target)
@@ -89,8 +89,8 @@
attached.visible_message("<span class='warning'>[attached] is detached from [src].</span>")
attached = null
update_icon()
return
return
if(iscarbon(target))
var/mob/living/carbon/feedee = target
@@ -113,12 +113,12 @@
face_atom(feedee)
return
//Either we arn't attaching to vorebelly, or we arnt able to. Let's try to feed them normally!
if(usr != feedee) //
if(usr != feedee) //
var/feedeePrefCheck = alert(feedee, "[usr] is attempting to shove \the [src]'s tube into your mouth! Do you want this?", "THE TUBE", "Yes!!", "No!")
if(feedeePrefCheck != "Yes!!")
to_chat(usr, "[feedee] doesnt want to be fed by \the [src]...")
return
output_dest = feedee //Attach normally
attached = feedee
@@ -147,7 +147,7 @@
cut_overlays()
var/mutable_appearance/tube_overlay = mutable_appearance('GainStation13/icons/obj/feeding_tube_industrial.dmi', "tube_idle")
if(pumping)
tube_overlay.icon_state = "tube-pump"
else
@@ -155,7 +155,7 @@
tube_overlay.icon_state = "tube-active"
else
tube_overlay.icon_state = "tube-idle"
if(welded) //if we're not welded, dont show our light on.
add_overlay("light-[clogged ? "r" : "g"]")
@@ -166,7 +166,7 @@
// called when the holder exits the outlet
/obj/structure/disposaloutlet/industrial_feeding_tube/expel(obj/structure/disposalholder/H)
var/clunkVol = LAZYLEN(H.contents)
if(H.hasmob) //Uh oh-
if(H.hasmob) //Uh oh-
clunkVol += 25
playsound(src, H.hasmob ? "clang" : "clangsmall", clamp(clunkVol, 5, H.hasmob ? 50 : 25))
H.active = FALSE
@@ -180,7 +180,7 @@
if(!pumping) //Lets start a new pump cycle if we arnt pumping. Otherwise, it'll just be added to the queue.
pump()
qdel(H)
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/pump(repeat = TRUE, unlimited = FALSE)
if(clogged)
return
@@ -204,7 +204,7 @@
if(LAZYLEN(pump_stuff) && repeat)
pump()
return
var/fed_something = FALSE
// Feed Normally
if(isliving(output_dest))
@@ -251,11 +251,13 @@
if(is_type_in_list(I, item_vore_blacklist))
inedible += I
continue
/*
if(isliving(AM))
var/mob/living/cutie = AM
if(cutie.devourable != TRUE) //Do not eat this QT...
inedible += cutie
continue
*/
fed_something = TRUE
AM.forceMove(output_dest)
@@ -272,7 +274,7 @@
else
pumping = FALSE
update_icon()
/obj/structure/disposaloutlet/industrial_feeding_tube/expel_holder(obj/structure/disposalholder/H, playsound=FALSE)
if(playsound)
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
@@ -292,7 +294,7 @@
attached = null
output_dest = null
update_icon()
return
return
/obj/structure/disposaloutlet/industrial_feeding_tube/attackby(obj/item/I, mob/living/user, params)
if(user.a_intent != INTENT_HELP)
@@ -330,7 +332,7 @@
if(!found_trunk)
to_chat(user, "<span class='warning'>\The [src] requires a trunk underneath it in order to work!</span>")
return
to_chat(user, "<span class='notice'>You attach \the [src] to the trunk.</span>")
anchored = TRUE
@@ -342,7 +344,7 @@
if(!clogged)
to_chat(user, "<span class='notice'>\The [src] doesnt seem to be clogged at the moment...")
return TRUE
user.visible_message("<span class='italics'>[user] starts to pry open the maintenance hatch of \the [src], attempting to unclog it...</span>")
if(do_after(user, 30, TRUE, src))
user.visible_message("<span class='notice'>[user] unclogs \the [src]!</span>")
@@ -355,7 +357,7 @@
return
if(anchored)
//var/turf/T = get_turf(src)
if(!welded)
if(!welded)
if(!trunk) // If we're attaching it, we need to check for the pipe we're attaching to
to_chat(user, "<span class='danger'>\The [src] needs to be welded to a trunk.</span>")
return TRUE
@@ -381,8 +383,8 @@
welded = TRUE
trunk.linked = src
return TRUE
else
playsound(src, 'sound/items/welder2.ogg', 100, 1)
to_chat(user, "<span class='notice'>You begin deconstructing \the [src]</span>")
@@ -393,7 +395,7 @@
// Someone got stuck inside after it got clogged!
// Lets let them force their way out
/obj/structure/disposaloutlet/industrial_feeding_tube/container_resist(mob/living/user)
/obj/structure/disposaloutlet/industrial_feeding_tube/container_resist(mob/living/user)
if(user.stat || !clogged) //If it's not clogged, they'll be ejected soon... One way or another.
return
playsound(src, 'sound/effects/clang.ogg', 50)
@@ -407,14 +409,14 @@
if(!(AM in pump_stuff))
pump_stuff += AM
AM.forceMove(src)
update_icon()
if(loud)
playsound(src, 'sound/machines/warning-buzzer.ogg', 50, 1)
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/unclog()
spew(pump_stuff)
clogged = FALSE
@@ -422,7 +424,7 @@
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/spew(var/list/spew_stuff, playsound = FALSE)
var/turf/T = get_turf(src)
if(playsound)
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
for(var/atom/movable/AM in spew_stuff)
+191
View File
@@ -0,0 +1,191 @@
/mob/living
var/adminbus_trash = FALSE // For abusing trash eater for event shenanigans.
/obj/item
var/trash_eatable = TRUE
/mob/living/proc/eat_trash()
set name = "Eat Trash"
set category = "Vore" //No Abilities?
set desc = "Consume held garbage."
if(!vore_selected)
to_chat(src,"<span class='warning'>You either don't have a belly selected, or don't have a belly!</span>")
return
var/obj/item/I = get_active_held_item()
if(!I)
to_chat(src, "<span class='notice'>You are not holding anything.</span>")
return
if(is_type_in_list(I,item_vore_blacklist) && !adminbus_trash) //If someone has adminbus, they can eat whatever they want.
to_chat(src, "<span class='warning'>You are not allowed to eat this.</span>")
return
if(!I.trash_eatable) //OOC pref. This /IS/ respected, even if adminbus_trash is enabled
to_chat(src, "<span class='warning'>You can't eat that so casually!</span>")
return
/*
if(istype(I, /obj/item/paicard))
var/obj/item/paicard/palcard = I
var/mob/living/silicon/pai/pocketpal = palcard.pai
if(pocketpal && (!pocketpal.devourable))
to_chat(src, "<span class='warning'>\The [pocketpal] doesn't allow you to eat it.</span>")
return
*/
if(is_type_in_list(I,edible_trash) | adminbus_trash /*|| is_type_in_list(I,edible_tech) && isSynthetic()*/)
/*
if(I.hidden_uplink)
to_chat(src, "<span class='warning'>You really should not be eating this.</span>")
message_admins("[key_name(src)] has attempted to ingest an uplink item. ([src ? ADMIN_JMP(src) : "null"])")
return
*/
if(istype(I,/obj/item/pda))
var/obj/item/pda/P = I
if(P.owner)
var/watching = FALSE
for(var/mob/living/carbon/human/H in view(src))
if(H.real_name == P.owner && H.client)
watching = TRUE
break
if(!watching)
return
else
visible_message("<span class='warning'>[src] is threatening to make [P] disappear!</span>")
if(P.id)
var/confirm = alert(src, "The PDA you're holding contains a vulnerable ID card. Will you risk it?", "Confirmation", "Definitely", "Cancel") //No tgui input?
if(confirm != "Definitely")
return
if(!do_after(src, 100, P))
return
visible_message("<span class='warning'>[src] successfully makes [P] disappear!</span>")
to_chat(src, "<span class='notice'>You can taste the sweet flavor of delicious technology.</span>")
dropItemToGround(I)
I.forceMove(vore_selected)
updateVRPanel()
return
/*
if(istype(I,/obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = I
if(S.holding)
to_chat(src, "<span class='warning'>There's something inside!</span>")
return
*/
/*
if(iscapturecrystal(I))
var/obj/item/capture_crystal/C = I
if(!C.bound_mob.devourable)
to_chat(src, "<span class='warning'>That doesn't seem like a good idea. (\The [C.bound_mob]'s prefs don't allow it.)</span>")
return
*/
dropItemToGround(I)
I.forceMove(vore_selected)
updateVRPanel()
log_admin("VORE: [src] used Eat Trash to swallow [I].")
if(istype(I,/obj/item/flashlight/flare) || istype(I,/obj/item/match) || istype(I,/obj/item/storage/box/matches))
to_chat(src, "<span class='notice'>You can taste the flavor of spicy cardboard.</span>")
else if(istype(I,/obj/item/flashlight/glowstick)) //Repath from /obj/item/device/flashlight/glowstick
to_chat(src, "<span class='notice'>You found out the glowy juice only tastes like regret.</span>")
else if(istype(I,/obj/item/cigbutt)) //Repath from /obj/item/trash/cigbutt
to_chat(src, "<span class='notice'>You can taste the flavor of bitter ash. Classy.</span>")
else if(istype(I,/obj/item/clothing/mask/cigarette)) //Repath from /obj/item/clothing/mask/smokable
var/obj/item/clothing/mask/cigarette/C = I
if(C.lit)
to_chat(src, "<span class='notice'>You can taste the flavor of burning ash. Spicy!</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of aromatic rolling paper and funny looks.</span>")
else if(istype(I,/obj/item/paper)) //Repath from /obj/item/weapon/paper
to_chat(src, "<span class='notice'>You can taste the dry flavor of bureaucracy.</span>")
else if(istype(I,/obj/item/dice)) //Repath from /obj/item/weapon/dice
to_chat(src, "<span class='notice'>You can taste the bitter flavor of cheating.</span>")
else if(istype(I,/obj/item/lipstick)) //Repath from /obj/item/weapon/lipstick
to_chat(src, "<span class='notice'>You can taste the flavor of couture and style. Toddler at the make-up bag style.</span>")
else if(istype(I,/obj/item/soap)) //Repath from /obj/item/weapon/soap
to_chat(src, "<span class='notice'>You can taste the bitter flavor of verbal purification.</span>")
else if(istype(I,/obj/item/stack/spacecash) || istype(I,/obj/item/storage/wallet)) //Repath from /obj/item/weapon/spacecash and /obj/item/weapon/storage/wallet
to_chat(src, "<span class='notice'>You can taste the flavor of wealth and reckless waste.</span>")
else if(istype(I,/obj/item/broken_bottle) || istype(I,/obj/item/shard)) //Repath from /obj/item/weapon/broken_bottle
to_chat(src, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
else if(istype(I,/obj/item/light)) //Repath from /obj/item/weapon/light
var/obj/item/light/L = I
if(L.status == LIGHT_BROKEN)
to_chat(src, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of really bad ideas.</span>")
/*
else if(istype(I,/obj/item/weapon/bikehorn/tinytether)) //Doenst exist
to_chat(src, "<span class='notice'>You feel a rush of power swallowing such a large, err, tiny structure.</span>")
*/
else if(istype(I,/obj/item/mmi/posibrain) || istype(I,/obj/item/aicard)) //Repath from /obj/item/device/mmi/digital/posibrain and //Repath from /obj/item/device/aicard
to_chat(src, "<span class='notice'>You can taste the sweet flavor of digital friendship. Or maybe it is something else.</span>")
else if(istype(I,/obj/item/paicard)) //Repath from /obj/item/device/paicard
to_chat(src, "<span class='notice'>You can taste the sweet flavor of digital friendship.</span>")
var/obj/item/paicard/ourcard = I
if(ourcard.pai && ourcard.pai.client && isbelly(ourcard.loc))
var/obj/belly/B = ourcard.loc
to_chat(ourcard.pai, "<span class= 'notice'><B>[B.desc]</B></span>")
else if(istype(I,/obj/item/reagent_containers/food)) //Repath from /obj/item/weapon/reagent_containers/food
var/obj/item/reagent_containers/food/F = I
if(!F.reagents.total_volume)
to_chat(src, "<span class='notice'>You can taste the flavor of garbage and leftovers. Delicious?</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of gluttonous waste of food.</span>")
else if (istype(I,/obj/item/clothing/neck/petcollar))
to_chat(src, "<span class='notice'>You can taste the submissiveness in the wearer of [I]!</span>")
/*
else if(iscapturecrystal(I))
var/obj/item/capture_crystal/C = I
if(C.bound_mob && (C.bound_mob in C.contents))
if(isbelly(C.loc))
//var/obj/belly/B = C.loc //CHOMPedit
//to_chat(C.bound_mob, "<span class= 'notice'>Outside of your crystal, you can see; <B>[B.desc]</B></span>") //CHOMPedit: moved to modular_chomp capture_crystal.dm
to_chat(src, "<span class='notice'>You can taste the the power of command.</span>")
*/
// CHOMPedit begin
/*
else if(istype(I,/obj/item/starcaster_news))
to_chat(src, "<span class='notice'>You can taste the dry flavor of digital garbage, oh wait its just the news.</span>")
*/
else if(istype(I,/obj/item/newspaper))
to_chat(src, "<span class='notice'>You can taste the dry flavor of garbage, oh wait its just the news.</span>")
else if (istype(I,/obj/item/stock_parts/cell))
visible_message("<span class='warning'>[src] sates their electric appetite with a [I]!</span>")
to_chat(src, "<span class='notice'>You can taste the spicy flavor of electrolytes, yum.</span>")
/*
else if (istype(I,/obj/item/walkpod))
visible_message("<span class='warning'>[src] sates their musical appetite with a [I]!</span>")
to_chat(src, "<span class='notice'>You can taste the jazzy flavor of music.</span>")
*/
/*
else if (istype(I,/obj/item/mail/junkmail))
visible_message("<span class='warning'>[src] devours the [I]!</span>")
to_chat(src, "<span class='notice'>You can taste the flavor of the galactic postal service.</span>")
*/
/*
else if (istype(I,/obj/item/weapon/gun/energy/sizegun))
visible_message("<span class='warning'>[src] devours the [I]!</span>")
to_chat(src, "<span class='notice'>You didn't read the warning label, did you?</span>")
*/
/*
else if (istype(I,/obj/item/device/slow_sizegun))
visible_message("<span class='warning'>[src] devours the [I]!</span>")
to_chat(src, "<span class='notice'>You taste the flavor of sunday driver bluespace.</span>")
*/
else if (istype(I,/obj/item/laser_pointer))
visible_message("<span class='warning'>[src] devours the [I]!</span>")
to_chat(src, "<span class='notice'>You taste the flavor of a laser.</span>")
else if (istype(I,/obj/item/canvas))
visible_message("<span class='warning'>[src] devours the [I]!</span>")
to_chat(src, "<span class='notice'>You taste the flavor of priceless artwork.</span>")
//CHOMPedit end
else
to_chat(src, "<span class='notice'>You can taste the flavor of garbage. Delicious.</span>")
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
return
to_chat(src, "<span class='notice'>This snack is too powerful to go down that easily.</span>") //CHOMPEdit
return
+1
View File
@@ -3970,6 +3970,7 @@
#include "GainStation13\code\mechanics\den abductors\purchaseble_goodies.dm"
#include "GainStation13\code\mobs\cakegolem.dm"
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\eat_trash.dm"
#include "GainStation13\code\mobs\emote.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
#include "GainStation13\code\modules\arousal\arousal.dm"