From a961614bae6051c7c83b9e7299aacdb54691fafb Mon Sep 17 00:00:00 2001 From: Kaostico Date: Mon, 23 Sep 2024 20:27:18 -0300 Subject: [PATCH] trash sweet trash --- .../objects_and_structures/code/structure.dm | 16 ++ .../objects_and_structures/code/trash_pile.dm | 138 ++++++++++++++++++ .../icons/trash_piles.dmi | Bin 0 -> 10397 bytes tgstation.dme | 2 + 4 files changed, 156 insertions(+) create mode 100644 modular_doppler/objects_and_structures/code/structure.dm create mode 100644 modular_doppler/objects_and_structures/code/trash_pile.dm create mode 100644 modular_doppler/objects_and_structures/icons/trash_piles.dmi diff --git a/modular_doppler/objects_and_structures/code/structure.dm b/modular_doppler/objects_and_structures/code/structure.dm new file mode 100644 index 0000000000000..8ebda2b81ed2f --- /dev/null +++ b/modular_doppler/objects_and_structures/code/structure.dm @@ -0,0 +1,16 @@ +/obj/effect/spawner/random/structure/crate + name = "crate spawner" + icon_state = "crate_secure" + loot = list( + /obj/effect/spawner/random/structure/crate_loot = 495, + /obj/structure/trash_pile = 250, + /obj/structure/closet/crate/trashcart/filled = 75, + /obj/effect/spawner/random/trash/moisture_trap = 50, + /obj/effect/spawner/random/trash/hobo_squat = 30, + /obj/structure/closet/mini_fridge = 35, + /obj/effect/spawner/random/trash/mess = 30, + /obj/item/kirbyplants/fern = 20, + /obj/structure/closet/crate/decorations = 15, + /obj/effect/decal/remains/human/smokey/maintenance = 7, + /obj/structure/destructible/cult/pants_altar = 1, + ) diff --git a/modular_doppler/objects_and_structures/code/trash_pile.dm b/modular_doppler/objects_and_structures/code/trash_pile.dm new file mode 100644 index 0000000000000..8e38a9bc46796 --- /dev/null +++ b/modular_doppler/objects_and_structures/code/trash_pile.dm @@ -0,0 +1,138 @@ +/obj/structure/trash_pile + name = "trash pile" + desc = "A heap of garbage, but maybe there's something interesting inside?" + icon = 'modular_doppler/objects_and_structures/icons/trash_piles.dmi' + icon_state = "randompile" + density = TRUE + anchored = TRUE + layer = TABLE_LAYER + obj_flags = CAN_BE_HIT + pass_flags = LETPASSTHROW + + max_integrity = 50 + + var/hide_person_time = 30 + var/hide_item_time = 15 + + var/list/searchedby = list()// Characters that have searched this trashpile, with values of searched time. + +/obj/structure/trash_pile/Initialize(mapload) + . = ..() + icon_state = pick( + "pile1", + "pile2", + "pilechair", + "piletable", + "pilevending", + "brtrashpile", + "microwavepile", + "rackpile", + "boxfort", + "trashbag", + "brokecomp", + ) + +/obj/structure/trash_pile/proc/do_search(mob/user) + if(contents.len) // There's something hidden + var/atom/hidden_atom = contents[contents.len] // Get the most recent hidden thing + if(istype(hidden_atom, /mob/living)) + var/mob/living/hidden_mob = hidden_atom + balloon_alert(user, "someone is inside!") + eject_mob(hidden_mob) + else if (istype(hidden_atom, /obj/item)) + var/obj/item/hidden_item = hidden_atom + balloon_alert(user, "found something!") + hidden_item.forceMove(src.loc) + else + // You already searched this one bruh + if(user.ckey in searchedby) + balloon_alert(user, "already searched!") + // You found an item! + else + produce_alpha_item() + balloon_alert(user, "found something!") + searchedby += user.ckey + +/obj/structure/trash_pile/attack_hand(mob/user) + // Human mob + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + human_user.visible_message("[user] searches through \the [src].", span_notice("You search through \the [src].")) + // Do the searching + if(do_after(user, rand(4 SECONDS, 6 SECONDS), target = src)) + if(src.loc) // Let's check if the pile still exists + do_search(user) + else + return ..() + +// Random lists +/obj/structure/trash_pile/proc/produce_alpha_item() + var/lootspawn = pick_weight(GLOB.maintenance_loot) + while(islist(lootspawn)) + lootspawn = pick_weight(lootspawn) + var/obj/item/hidden_item = new lootspawn(get_turf(src)) + return hidden_item + +/obj/structure/trash_pile/mouse_drop_receive(atom/dropping, mob/user, params) + if(user == dropping && iscarbon(dropping)) + var/mob/living/dropped_mob = dropping + if(dropped_mob.mobility_flags & MOBILITY_MOVE) + dive_in_pile(user) + return + +/obj/structure/trash_pile/proc/eject_mob(mob/living/hidden_mob) + hidden_mob.forceMove(src.loc) + playsound(hidden_mob.loc, 'sound/machines/chime.ogg', 50, FALSE, -5) + hidden_mob.do_alert_animation(hidden_mob) + +/obj/structure/trash_pile/proc/do_dive(mob/user) + if(contents.len) + for(var/mob/hidden_mob in contents) + balloon_alert(user, "already someone inside!") + eject_mob(hidden_mob) + return FALSE + return TRUE + +/obj/structure/trash_pile/proc/dive_in_pile(mob/user) + user.visible_message(span_warning("[user] starts diving into [src]."), \ + span_notice("You start diving into [src]...")) + var/adjusted_dive_time = hide_person_time + if(HAS_TRAIT(user, TRAIT_RESTRAINED)) // hiding takes twice as long when restrained. + adjusted_dive_time *= 2 + + if(do_after(user, adjusted_dive_time, user)) + if(src.loc) // Checking if structure has been destroyed + if(do_dive(user)) + user.forceMove(src) + +/obj/structure/trash_pile/proc/can_hide_item(obj/item/hidden_item) + if(contents.len > 10) + return FALSE + return TRUE + +/obj/structure/trash_pile/attackby(obj/item/hidden_item, mob/living/user, params) + if(!user.combat_mode) + if(can_hide_item(hidden_item)) + balloon_alert(user, "hiding item...") + if(do_after(user, hide_item_time, user)) + if(src.loc) + if(user.transferItemToLoc(hidden_item, src)) + balloon_alert(user, "item hidden") + else + balloon_alert(user, "it's stuck to your hand!") + else + balloon_alert(user, "it's full!") + return + + . = ..() + +/obj/structure/trash_pile/Destroy() + for(var/atom/movable/pile_contents in src) + pile_contents.forceMove(src.loc) + return ..() + +/obj/structure/trash_pile/container_resist_act(mob/user) + user.forceMove(src.loc) + +/obj/structure/trash_pile/relaymove(mob/user) + container_resist_act(user) diff --git a/modular_doppler/objects_and_structures/icons/trash_piles.dmi b/modular_doppler/objects_and_structures/icons/trash_piles.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ad8fc7e3ca2f52586cf78e6c36c6937eebb87e43 GIT binary patch literal 10397 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 Cn>y71 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index af38d01445a7c..cfda24e0a66cb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6811,7 +6811,9 @@ #include "modular_doppler\obj_flags_doppler\code\objs.dm" #include "modular_doppler\objects_and_structures\code\icemoon_tiles.dm" #include "modular_doppler\objects_and_structures\code\sauna_oven.dm" +#include "modular_doppler\objects_and_structures\code\structure.dm" #include "modular_doppler\objects_and_structures\code\towel_bins.dm" +#include "modular_doppler\objects_and_structures\code\trash_pile.dm" #include "modular_doppler\objects_and_structures\code\watercloset.dm" #include "modular_doppler\pixel_shift\living.dm" #include "modular_doppler\pixel_shift\living_movement.dm"