mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑
166 lines
5.3 KiB
Plaintext
166 lines
5.3 KiB
Plaintext
//how fast disposal machinery is ejecting things and how far it goes
|
|
/// The slowest setting for disposal eject speed
|
|
#define EJECT_SPEED_SLOW 1
|
|
#define EJECT_RANGE_SLOW 2
|
|
/// The default setting for disposal eject speed
|
|
#define EJECT_SPEED_MED 2
|
|
#define EJECT_RANGE_MED 4
|
|
/// The fast setting for disposal eject speed
|
|
#define EJECT_SPEED_FAST 4
|
|
#define EJECT_RANGE_FAST 6
|
|
/// The fastest, emag exclusive setting for disposal eject speed
|
|
#define EJECT_SPEED_YEET 6
|
|
#define EJECT_RANGE_YEET 10
|
|
|
|
// the disposal outlet machine
|
|
/obj/structure/disposaloutlet
|
|
name = "disposal outlet"
|
|
desc = "An outlet for the pneumatic disposal system."
|
|
icon = 'icons/obj/pipes_n_cables/disposal.dmi'
|
|
icon_state = "outlet"
|
|
density = TRUE
|
|
anchored = TRUE
|
|
var/active = FALSE
|
|
var/turf/target // this will be where the output objects are 'thrown' to.
|
|
var/obj/structure/disposalpipe/trunk/trunk // the attached pipe trunk
|
|
var/obj/structure/disposalconstruct/stored
|
|
var/start_eject = 0
|
|
var/eject_range = EJECT_RANGE_SLOW
|
|
/// how fast we're spitting fir- atoms
|
|
var/eject_speed = EJECT_SPEED_SLOW
|
|
|
|
/obj/structure/disposaloutlet/Initialize(mapload, obj/structure/disposalconstruct/make_from)
|
|
. = ..()
|
|
if(make_from)
|
|
setDir(make_from.dir)
|
|
make_from.forceMove(src)
|
|
stored = make_from
|
|
else
|
|
stored = new /obj/structure/disposalconstruct(src, null , SOUTH , FALSE , src)
|
|
|
|
target = get_ranged_target_turf(src, dir, 10)
|
|
|
|
var/obj/structure/disposalpipe/trunk/found_trunk = locate() in loc
|
|
if(found_trunk)
|
|
found_trunk.set_linked(src) // link the pipe trunk to self
|
|
trunk = found_trunk
|
|
|
|
/obj/structure/disposaloutlet/Destroy()
|
|
if(trunk)
|
|
// preemptively expel the contents from the trunk
|
|
// in case the outlet is deleted before expel_holder could be called.
|
|
var/obj/structure/disposalholder/holder = locate() in trunk
|
|
if(holder)
|
|
trunk.expel(holder)
|
|
trunk.linked = null
|
|
trunk = null
|
|
QDEL_NULL(stored)
|
|
return ..()
|
|
|
|
// expel the contents of the holder object, then delete it
|
|
// called when the holder exits the outlet
|
|
/obj/structure/disposaloutlet/proc/expel(obj/structure/disposalholder/H)
|
|
H.active = FALSE
|
|
flick("outlet-open", src)
|
|
if((start_eject + 30) < world.time)
|
|
start_eject = world.time
|
|
playsound(src, 'sound/machines/warning-buzzer.ogg', 50, FALSE, FALSE)
|
|
addtimer(CALLBACK(src, PROC_REF(expel_holder), H, TRUE), 2 SECONDS)
|
|
else
|
|
addtimer(CALLBACK(src, PROC_REF(expel_holder), H), 2 SECONDS)
|
|
|
|
/obj/structure/disposaloutlet/proc/expel_holder(obj/structure/disposalholder/H, playsound=FALSE)
|
|
if(playsound)
|
|
playsound(src, 'sound/machines/hiss.ogg', 50, FALSE, FALSE)
|
|
|
|
if(QDELETED(H))
|
|
return
|
|
|
|
pipe_eject(H, dir, TRUE, target, eject_range, eject_speed)
|
|
|
|
H.vent_gas(loc)
|
|
qdel(H)
|
|
|
|
/obj/structure/disposaloutlet/welder_act(mob/living/user, obj/item/I)
|
|
..()
|
|
if(!I.tool_start_check(user, amount=1, heat_required = HIGH_TEMPERATURE_REQUIRED))
|
|
return TRUE
|
|
|
|
playsound(src, 'sound/items/tools/welder2.ogg', 100, TRUE)
|
|
to_chat(user, span_notice("You start slicing the floorweld off [src]..."))
|
|
if(I.use_tool(src, user, 20))
|
|
to_chat(user, span_notice("You slice the floorweld off [src]."))
|
|
stored.forceMove(loc)
|
|
transfer_fingerprints_to(stored)
|
|
stored = null
|
|
qdel(src)
|
|
return TRUE
|
|
|
|
/obj/structure/disposaloutlet/examine(mob/user)
|
|
. = ..()
|
|
switch(eject_speed)
|
|
if(EJECT_SPEED_SLOW)
|
|
. += span_info("An LED image of a turtle is displayed on the side of the outlet.")
|
|
if(EJECT_SPEED_MED)
|
|
. += span_info("An LED image of a bumblebee is displayed on the side of the outlet.")
|
|
if(EJECT_SPEED_FAST)
|
|
. += span_info("An LED image of a speeding bullet is displayed on the side of the outlet.")
|
|
if(EJECT_SPEED_YEET)
|
|
. += span_info("An LED image of a grawlix is displayed on the side of the outlet.")
|
|
|
|
/obj/structure/disposaloutlet/multitool_act(mob/living/user, obj/item/I)
|
|
. = ..()
|
|
//if emagged it cant change the speed setting off max
|
|
if(obj_flags & EMAGGED)
|
|
to_chat(user, span_notice("The LED display flashes an error!"))
|
|
else
|
|
to_chat(user, span_notice("You adjust the ejection force on \the [src]."))
|
|
switch(eject_speed)
|
|
if(EJECT_SPEED_SLOW)
|
|
eject_speed = EJECT_SPEED_MED
|
|
eject_range = EJECT_RANGE_MED
|
|
if(EJECT_SPEED_MED)
|
|
eject_speed = EJECT_SPEED_FAST
|
|
eject_range = EJECT_RANGE_FAST
|
|
else
|
|
eject_speed = EJECT_SPEED_SLOW
|
|
eject_range = EJECT_RANGE_SLOW
|
|
return TRUE
|
|
|
|
/obj/structure/disposaloutlet/emag_act(mob/user, obj/item/card/emag/emag_card)
|
|
. = ..()
|
|
if(obj_flags & EMAGGED)
|
|
return
|
|
balloon_alert(user, "ejection force maximized")
|
|
obj_flags |= EMAGGED
|
|
eject_speed = EJECT_SPEED_YEET
|
|
eject_range = EJECT_RANGE_YEET
|
|
return TRUE
|
|
|
|
/obj/structure/disposaloutlet/force_pushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
|
|
. = ..()
|
|
if(!isnull(stored))
|
|
stored.forceMove(loc)
|
|
transfer_fingerprints_to(stored)
|
|
stored = null
|
|
visible_message(span_warning("[src] is ripped free from the floor!"))
|
|
qdel(src)
|
|
|
|
/obj/structure/disposaloutlet/move_crushed(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
|
|
. = ..()
|
|
if(!isnull(stored))
|
|
stored.forceMove(loc)
|
|
transfer_fingerprints_to(stored)
|
|
stored = null
|
|
visible_message(span_warning("[src] is ripped free from the floor!"))
|
|
qdel(src)
|
|
|
|
#undef EJECT_SPEED_SLOW
|
|
#undef EJECT_SPEED_MED
|
|
#undef EJECT_SPEED_FAST
|
|
#undef EJECT_SPEED_YEET
|
|
#undef EJECT_RANGE_SLOW
|
|
#undef EJECT_RANGE_MED
|
|
#undef EJECT_RANGE_FAST
|
|
#undef EJECT_RANGE_YEET
|